什么是 MirrorMaker?

MirrorMaker是Kafka附带的一个用于在Kafka集群之间制作镜像数据的工具。该工具主要动作就是从源集群中消费并生产到目标群集。

一个集群可以启动多个MirrorMaker配置到多个集群

运行 MirrorMaker方法

kafka-mirror-maker.sh --consumer.config ./consumer.properties --producer.config ./producer.properties --num.streams 8 --whitelist ".*"

实际操作一遍

consumer.properties文件

root@DESKTOP-I0EG1MJ:~/kafka-client/mirror-maker# cat consumer.properties
bootstrap.servers=192.168.3.194:9092
group.id=mirrormaker
auto.offset.reset=earliest

producer.properties文件

root@DESKTOP-I0EG1MJ:~/kafka-client/mirror-maker# cat producer.properties
bootstrap.servers=192.168.2.123:9092

运行mirror-maker

root@DESKTOP-I0EG1MJ:~/kafka-client/mirror-maker# cat run-mirrormaker.sh
kafka-mirror-maker.sh --consumer.config ./consumer.properties --producer.config ./producer.properties --offset.commit.interval.ms 5000 --num.streams 2 --whitelist "test0428"

参数说明:

--consumer.config 消费者的配置文件(要消费的集群)

--producer.config 指定生产配置文件(要发送到的目标集群)

--whitelist 要同步的topic白名单,可以匹配正则,也可以指定具体topic

--offset.commit.interval.ms 消费端提交offset时间间隔

--num.streams  MirrorMaker 要创建多少个 KafkaConsumer 实例

更多可以使用 --help查看

root@DESKTOP-I0EG1MJ:~/kafka-client/mirror-maker# kafka-mirror-maker.sh --help
This tool helps to continuously copy data between two Kafka clusters.
Option                                   Description
------                                   -----------
--abort.on.send.failure <String: Stop    Configure the mirror maker to exit onthe entire mirror maker when a send      a failed send. (default: true)failure occurs>
--consumer.config <String: config file>  Embedded consumer config for consumingfrom the source cluster.
--consumer.rebalance.listener <String:   The consumer rebalance listener to useA custom rebalance listener of type      for mirror maker consumer.ConsumerRebalanceListener>
--help                                   Print usage information.
--message.handler <String: A custom      Message handler which will processmessage handler of type                  every record in-between consumer andMirrorMakerMessageHandler>               producer.
--message.handler.args <String:          Arguments used by custom messageArguments passed to message handler      handler for mirror maker.constructor.>
--new.consumer                           DEPRECATED Use new consumer in mirrormaker (this is the default so thisoption will be removed in a futureversion).
--num.streams <Integer: Number of        Number of consumption streams.threads>                                 (default: 1)
--offset.commit.interval.ms <Integer:    Offset commit interval in ms.offset commit interval in                (default: 60000)millisecond>
--producer.config <String: config file>  Embedded producer config.
--rebalance.listener.args <String:       Arguments used by custom rebalanceArguments passed to custom rebalance     listener for mirror maker consumer.listener constructor as a string.>
--version                                Display Kafka version.
--whitelist <String: Java regex          Whitelist of topics to mirror.(String)>

运行后会提示这么一句话

WARNING: The default partition assignment strategy of the mirror maker will change from 'range' to 'roundrobin' in an upcoming release (so that better load balancing can be achieved). If you prefer to make this switch in advance of that release add the following to the corresponding config: 'partition.assignment.strategy=org.apache.kafka.clients.consumer.RoundRobinAssignor'

主要是说是MirrorMaker使用的消费策略是 Range ,以后可能改成 “轮训策略” ,我们可以手动指定“轮询策略”

在Consuemr.properties中设置即可

partition.assignment.strategy=org.apache.kafka.clients.consumer.RoundRobinAssignor

此时我们已经运行成功,直接去查看是否可以消费成功即可。

注意:同步前最后将目标集群的Topic创建好,否则会使用Broker默认配置

Kafka 集群数据备份 MirrorMaker 详解相关推荐

  1. mongo 3.4分片集群系列之六:详解配置数据库

    这个系列大致想跟大家分享以下篇章: 1.mongo 3.4分片集群系列之一:浅谈分片集群 2.mongo 3.4分片集群系列之二:搭建分片集群--哈希分片 3.mongo 3.4分片集群系列之三:搭建 ...

  2. 3种双集群系统方案设计模式详解

    当前社会.企业运行当中,大数据分析.数据仓库平台已逐渐成为生产.生活的重要地位,不再是一个附属的可有可无的分析系统,外部监控要求.企业内部服务,涌现大批要求7*24小时在线的应用,逐步出现不同等级要求 ...

  3. java集群_Kafka多节点分布式集群搭建实现过程详解_java

    上一篇分享了单节点伪分布式集群搭建方法,本篇来分享一下多节点分布式集群搭建方法.多节点分布式集群结构如下图所示: 为了方便查阅,本篇将和上一篇一样从零开始一步一步进行集群搭建. 一.安装Jdk 具体安 ...

  4. ceph集群和数据库到底是储存数据_Python开发之:Django基于Docker实现Mysql数据库读写分离、集群、主从同步详解 | 原力计划...

    作者 | Pythonicc责编 | 王晓曼出品 | CSDN博客简介1.什么是数据库读写分离读写分离,基本的原理是让主数据库处理事务性增.改.删操作(INSERT.UPDATE.DELETE),而从 ...

  5. k8s 的etcd备份、CoreDNS和dashboard安装,集群升级,yaml详解

    前言:本文k8s环境搭建是采用kubeasz 3.2.0方式二进制部署的,这个种部署方式是经过CNCF(云原生基金会)认证的,可以用在生产上,本演示环境已装好k8s和calico 安装包链接:http ...

  6. Python开发之:Django基于Docker实现Mysql数据库读写分离、集群、主从同步详解 | 原力计划...

    作者 | Pythonicc 责编 | 王晓曼 出品 | CSDN博客 简介 1.什么是数据库读写分离 读写分离,基本的原理是让主数据库处理事务性增.改.删操作(INSERT.UPDATE.DELET ...

  7. Zookeeper集群搭建(配置详解)

    软件环境准备: Linux服务器一台.三台.五台(2*n+1台): Java jdk 1.7: zookeeper 3.4.6版: 软件安装: 解压jdk.zookeeper文件到指定目录,执行命令t ...

  8. 昨晚,我们的消费者居然停止消费kafka集群数据了

    以下文章来源方志朋的博客,回复"666"获面试宝典 图片来源:伪装者 来源 | https://juejin.im/post/6874957625998606344 笔者所在的是一 ...

  9. 集群系统实现方案详解

    有一种常见的方法可以大幅提高服务器的安全性,这就是集群. 1. 集群的基本概念 Cluster集群技术可如下定义:一组相互独立的服务器在网络中表现为单一的系统,并以单一系统的模式加以管理.此单一系统为 ...

最新文章

  1. 中文版开源!这或许是最经典的Python编程教材
  2. Linux(Contos7.5)环境搭建之Gitblit安装(三)
  3. SAP 4.6C升级ECC6.0 WS_QUERY 的改法
  4. Qt / QWidget、QFrame 区别
  5. 解决浏览器兼容性问题面试题_如果不解决技术面试问题,就无法解决技术多样性问题。 这是数据。...
  6. 老有人问你什么是Docker?把这篇干货文章甩给他!
  7. qt 在qtextedit显示数组_Qt开源作品34-qwt无需插件源码
  8. java反射 set_Java反射
  9. 神经网络的Dropout的理解
  10. 过程FMEA(PFMEA)步骤一:策划与准备
  11. 新国二选office和c语言,备考全国计算机二级MS Office考试这些你知道吗?
  12. C语言: gotoxy函数
  13. 华为atn950b指导手册_全新原包装华为ATN950B 整机 传输设备
  14. Alink漫谈(十一) :线性回归 之 L-BFGS优化
  15. 推特 我们目前不能注册此邮箱地址_安卓版推特App存在隐私漏洞,官方发信敦促用户更新...
  16. p20华为云电脑白屏_华为云电脑体验评测,原来手机办公、修图这么强大了
  17. CoreAudioApi-音频端点设备-检测耳机插拔
  18. 2000-2019年世界人口数据集内附下载地址和链接
  19. 为什么大家都不喜欢用国产科研仪器?
  20. 技术拯救的网瘾少年,安全盒子王松的执念 | 宅客故事

热门文章

  1. ai钢笔工具怎么描线_AI中钢笔工具绘图的实战操作技巧!(干货满满)
  2. web大作业介绍自己的家乡_襄阳市恒大名都小学2018—2019年度寒假实践作业
  3. string类的erase函数属于stl吗_探索STL容器:vector
  4. 黑苹果系统坏了如何恢复_黑苹果macOS系统U盘版/恢复版基础安装教程
  5. mfc color 亮度_双十一4K投影仪怎么选?小心别掉“亮度坑” - 电视
  6. 大神程序员都懂英文翻译,而你却因英语不行遭拒?
  7. main方法 如何去掉http debug日志_在MyBatis中如何使用collection标签实现嵌套查询?...
  8. linux 管道非阻塞,linux – 管道上的非阻塞读取
  9. hbuid 集成svn_HBuilder如何配置SVN的步骤详解
  10. python字典由什么组成_在Python中,将由关键字对组成的列表添加到字典中最简单的方法是什么?...