Kafka 跨集群同步方案 MirrorMaker

一文读懂kafka消息拉取机制|线程拉取模型 又是一年求职季,在这里,我为各位准备了一套Java程序员精选高频面试笔试真题,来帮助大家攻下BAT的offer,题目范围从初级的Java基础到高级的分布式架构等等一系列的面试题和答案,用于给大家作为参考以下是部分内容截图《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!试题和答案,用于给大家作为参考以下是部分内容截图[外链图片转存中…(img-onpAMIUb-1711868214199)] 阅读详情

该方案解决Kafka跨集群同步、创建Kafka集群镜像等相关问题,主要使用Kafka内置的MirrorMaker工具实现。

Kafka镜像即已有Kafka集群的副本。下图展示如何使用MirrorMaker工具创建从源Kafka集群(source cluster)到目标Kafka集群(target cluster)的镜像。该工具通过Kafka consumer从源Kafka集群消费数据,然后通过一个内置的Kafka producer将数据重新推送到目标Kafka集群。

Kafka 跨集群同步方案——MirrorMaker

方法/步骤

  • 如何创建镜像

    使用MirrorMaker创建镜像是比较简单的,搭建好目标Kafka集群后,只需要启动mirror-maker程序即可。其中,一个或多个consumer配置文件、一个producer配置文件是必须的,whitelist、blacklist是可选的。在consumer的配置中指定源Kafka集群的Zookeeper,在producer的配置中指定目标集群的Zookeeper(或者broker.list)。

    kafka-run-class.sh kafka.tools.MirrorMaker --consumer.config sourceCluster1Consumer.config --consumer.config sourceCluster2Consumer.config --num.streams 2 --producer.config targetClusterProducer.config --whitelist=".*"

    例如,你需要创建S集群的镜像,目标集群T已经搭建好,简单的做法如下:

    1. 创建consumer配置文件:sourceClusterConsumer.config

    zk.connect=szk0:2181,szk1:2181,szk2:2181

    groupid=test-mirror-consumer-group

     2. 创建producer配置文件:targetClusterProducer.config

    zk.connect=tzk0:2181,tzk1:2181

     3. 创建启动脚本:start.sh

    $KAFKA_HOME/bin/kafka-run-class.sh kafka.tools.MirrorMaker --consumer.config sourceClusterConsumer.config --num.streams 2 --producer.config targetClusterProducer.config --whitelist=".*"

     4. 执行脚本

    执行start.sh通过日志信息查看运行状况,到目标Kafka集群的log.dir中即可看到同步过来的数据。

  • MirrorMaker的参数说明

    $KAFKA_HOME/bin/kafka-run-class.sh kafka.tools.MirrorMaker --help

    执行上面的命令就可以看到各个参数的说明:

    1. 白名单(whitelist) 黑名单(blacklist)

    mirror-maker接受精确指定同步topic的白名单和黑名单。使用java标准的正则表达式,为了方便,逗号(‘,’)被编译为java正则中的(‘|’)。

    2. Producer timeout

    为了支持高吞吐量,你最好使用异步的内置producer,并将内置producer设置为阻塞模式(queue.enqueueTimeout.ms=-1)。这样可以保证数据(messages)不会丢失。否则,异步producer默认的 enqueueTimeout是0,如果producer内部的队列满了,数据(messages)会被丢弃,并抛出QueueFullExceptions异常。而对于阻塞模式的producer,如果内部队列满了就会一直等待,从而有效的节制内置consumer的消费速度。你可以打开producer的的trace logging,随时查看内部队列剩余的量。如果producer的内部队列长时间处于满的状态,这说明对于mirror-maker来说,将消息重新推到目标Kafka集群或者将消息写入磁盘是瓶颈。

    对于kafka的producer同步异步的详细配置请参考$KAFKA_HOME/config/producer.properties文件。关注其中的producer.type和queue.enqueueTimeout.ms这两个字段。

    3. Producer 重试次数(retries)

    如果你在producer的配置中使用broker.list,你可以设置当发布数据失败时候的重试次数。retry参数只在使用broker.list的时候使用,因为在重试的时候会重新选择broker。

    4. Producer 数量

    通过设置—num.producers参数,可以使用一个producer池来提高mirror maker的吞吐量。在接受数据(messages)的broker上的producer是只使用单个线程来处理的。就算你有多个消费流,吞吐量也会在producer处理请求的时候被限制。

    5. 消费流(consumption streams)数量

    使用—num.streams可以指定consumer的线程数。请注意,如果你启动多个mirror maker进程,你可能需要看看其在源Kafka集群partitions的分布情况。如果在每个mirror maker进程上的消费流(consumption streams)数量太多,某些消费进程如果不拥有任何分区的消费权限会被置于空闲状态,主要原因在于consumer的负载均衡算法。

    6. 浅迭代(Shallow iteration)与producer压缩

    我们建议在mirror maker的consumer中开启浅迭代(shallow iteration)。意思就是mirror maker的consumer不对已经压缩的消息集(message-sets)进行解压,只是直接将获取到的消息集数据同步到producer中。

    如果你开启浅迭代(shallow iteration),那么你必须关闭mirror maker中producer的压缩功能,否则消息集(message-sets)会被重复压缩。

    7. Consumer 和 源Kafka集群(source cluster)的 socket buffer sizes

    镜像经常用在跨集群场景中,你可能希望通过一些配置选项来优化内部集群的通信延迟和特定硬件性能瓶颈。一般来说,你应该对mirror-maker中consumer的socket.buffersize 和源集群broker的socket.send.buffer设定一个高的值。此外,mirror-maker中消费者(consumer)的fetch.size应该设定比socket.buffersize更高的值。注意,套接字缓冲区大小(socket buffer size)是操作系统网络层的参数。如果你启用trace级别的日志,你可以检查实际接收的缓冲区大小(buffer size),以确定是否调整操作系统的网络层。

    Kafka 跨集群同步方案——MirrorMaker
  • 如何检验MirrorMaker运行状况

    Consumer offset checker工具可以用来检查镜像对源集群的消费进度。例如:

    bin/kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --group KafkaMirror --zkconnect localhost:2181 --topic test-topic

    KafkaMirror,topic1,0-0 (Group,Topic,BrokerId-PartitionId)

                Owner = KafkaMirror_jkoshy-ld-1320972386342-beb4bfc9-0

      Consumer offset = 561154288

                      = 561,154,288 (0.52G)

             Log size = 2231392259

                      = 2,231,392,259 (2.08G)

         Consumer lag = 1670237971

                      = 1,670,237,971 (1.56G)

    BROKER INFO

    0 -> 127.0.0.1:9092

    注意,–zkconnect参数需要指定到源集群的Zookeeper。另外,如果指定topic没有指定,则打印当前消费者group下所有topic的信息。

  • 官网资料

  • https://cwiki.apache.org/confluence/display/KAFKA/Kafka+mirroring

  • https://cwiki.apache.org/confluence/display/KAFKA/Kafka+mirroring+(MirrorMaker)#Kafkamirroring(MirrorMaker)-Whitelistorblacklist


kafka 两台单机实现 数据同步 kafka数据同步 zookeeper配置 [root@node1 zookeeper-3.4.9]# grep '^[a-Z]' conf/zoo.cfg tickTime=2000 initLimit=10 syncLimit=5 dataDir=/opt/iotplatform/zookeeper-3.4.9/data dataLogDir=/opt/iotplatform/zookeeper-3.4.9/datalog clientPort=2181 kafka配置 # 修改配置文件如下 [ro 阅读详情

相关推荐

kafka:Kafka跨集群数据同步与MirrorMaker2架构深度解析

拓扑设计原则采用星型拓扑而非网状结构为每个同步方向独立配置MM2集群关键业务配置双向心跳检测数据一致性保障重要交易数据启用端到端校验定期执行校验和比对实现幂等生产者和事务支持性能优化要点根据网络RTT调整socket缓冲区合理设置fetch.min.bytes和fetch.max.wait.ms为不同业务线配置独立的复制组通过以上方法,我们在字节跳动实现了日均万亿级消息的跨洋同步,在阿里双11期间保障了多活数据中心的数据一致性,SLA达到99.995%。

weixin_43290370的博客 1335

Kafka 跨集群同步方案(转)

来自:http://tangzhaohui.net/524 Kafka 跨集群同步方案——Kafka内置的MirrorMaker工具 该方案解决Kafka跨集群同步、创建Kafka集群镜像等相关问题,主要使用Kafka内置的MirrorMaker工具实现。 Kafka镜像即已有Kafka集群的副本。下图展示如何使用MirrorMaker工具创建从源Kafka集群(source cluster...

weixin_33966095的博客 1470

35 | 跨集群备份解决方案MirrorMaker

跨集群备份解决方案MirrorMaker

吉衣の秋先生的博客 2019

Kafka集群间同步数据方案-Flume

Apache Flume 是一个分布式、高可靠、高可用的用来收集、聚合、转移不同来源的大量日志数据到中央数据仓库的工具。

Learning_xzj的博客 3829

Docker部署Kafka全流程:从镜像拉取到生产级配置

消息队列作为分布式系统的核心组件,Kafka凭借其高吞吐和低延迟特性成为主流选择。容器化技术Docker通过镜像封装和隔离机制,极大简化了中间件的部署流程。在消息中间件领域,Kafka的Docker化部署涉及镜像选择、网络配置、存储策略等关键技术点,特别是在生产环境中需要关注副本因子、ISR配置等可靠性参数。通过合理配置KAFKA_ADVERTISED_LISTENERS等环境变量,可以解决容器网络隔离带来的连接问题,而挂载Volume和资源限制则保障了服务的稳定性。本文以Kafka 7.3.2版本为例,详

weixin_33806859的博客 290

MQ - 41 容灾:跨地域、跨可用区的容灾和同步的方案设计

对于我们业务侧来说,我们需要保证业务在任何情况都能正常运行,即服务自身拥有容灾能力是基本要求。而消息队列作为基础组件,容灾是它的基本能力。我们将会详细讲一下消息队列集群在发生异常时如何做好容灾,以及异常时如何保证数据不丢失容灾是指当系统发生这些异常时,服务能够自动切换,并正常运行。我们是通过 RTO 和 RPO 来衡量容灾的质量。RTO 是指发生故障时业务系统所能容忍的最长停止服务时间,RPO 是指在故障期间能够容忍多少数据丢失。业务追求的是 RTO 和 RPO 都为 0,或者无限趋近于 0。

小工匠 1万+

Kafka跨集群备份解决方案MirrorMaker

从本质上说,MirrorMaker 就是一个消费者 + 生产者的程序。消费者负责从源集群(Source Cluster)消费数据,生产者负责向目标集群(Target Cluster)发送消息。整个镜像流程如下图所kafka跨集群备份解决方案MirrorMaker示:MirrorMaker 连接的源集群和目标集群,会实时同步消息。当然,你不要认为你只能使用一套 MirrorMaker 来连接上下游集群。事实上,很多用户会部署多套集群,用于实现不同的目的。我们来看看下面这张图。

桑凯旋的博客 2476

MFC下使用C++操作Word文档

由于项目需求,在MFC环境下操作将数据和图片写入word文档,之前没有接触过,网上查阅了很多资料,终于把任务完成。理解的不是很透彻,但是这些东西应该够用了,写篇博客记录一下,以便以后再用到。 (1)VS环境下创建一个MFC应用程序,然后在项目上单击右键,选择 类向导-----添加类----类型库中的MFC类。在弹出的对话框中选择文件,位置选择office安装目录下的...

GIS_yuhua的博客 7582

MirrorMaker kafka跨集群同步方案

https://www.hhj100.com/ https://detail.tmall.com/item.htm?id=604066404838&ali_trackid=2:mm_108689443_36918578_132750161:1605175004_298_342186384&union_lens=lensId:OPT@1605174999@0bb8e51b_6753_175bbe2b8d5_bbd9@01;recoveryid:201_11.23.123.50_8601021

xiaoping117的专栏 1225

《活用数据——驱动业务的数分析实战》读书笔记 (实战篇)

第四章、战略分析案例解析         如思维篇所述,分析思路是从研究目的到研究内容的分解过程。因此需要考虑如下两个问题: 战略分析的研究目的 战略分析的研究内容 1、研究目的:战略选择         战略分析的研究目的是帮助企业进行战略选择,选择适合自己的目标市场。需要回答以下两个问题: 市场吸引力:这个市...

Xiaozhu的博客 3699

WSL2部署Cadence Virtuoso IC25.1:Ubuntu 26.04排障实录

WSL2以轻量虚拟机结合完整Linux内核,为Windows桌面环境提供了原生级Linux运行能力,解决了传统虚拟机资源开销大、双系统切换低效的问题。对于依赖X11图形协议、FlexNet许可服务和特定动态库的EDA工具链而言,利用WSL2部署Linux发行版需要关注系统集成、显示通路与许可连通性。从技术原理看,图形层X Server的配置、动态库依赖的补齐以及license服务的主机名解析,共同构成EDA工具在WSL2中稳定运行的关键环节。在芯片设计场景中,设计工程师常需在Windows办公机与Linux

weixin_29597551的博客 212

【Kafka】MirrorMaker 跨集群同步方案

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34148340的博客 308

【学习笔记】人群归因分数 PAF 以及combined PAF

人群归因风险比例(Population Attributable Fraction,PAF)是一个流行病学指标,它估计了在总体中,如果能消除一个特定的危险因素,能预防多少百分比的疾病或健康结果。简单来说,PAF回答的是:“如果没有这个风险因素,总体中会有多少病例是可以避免的?

weixin_53499537的博客 4905

Kafka 跨集群同步方案——Kafka内置的MirrorMaker工具

该方案解决Kafka跨集群同步、创建Kafka集群镜像等相关问题,主要使用Kafka内置的MirrorMaker工具实现。 Kafka镜像即已有Kafka集群的副本。下图展示如何使用MirrorMaker工具创建从源Kafka集群(source cluster)到目标Kafka集群(target cluster)的镜像。该工具通过Kafka consumer从源Kafka集群消费数据,然后通

baiyunxiaoxiao_chen的博客 5704

一篇文章将三极管讲透:三极管从原理到应用,从参数到特性,从入门到精通

晶体三极管(Transistor)是一种半导体电子器件,也是电子工程中最基本的元件之一。它有三个区域,分别是P型半导体,N型半导体和P型半导体,从而形成PNP型晶体三极管或者NPN型晶体三极管。

学习帮的博客 9万+

手把手教你绕过Incapsula reese84防护:从JS反混淆到动态Token生成全流程

本文深入解析了以Incapsula reese84为代表的现代Web客户端挑战防护机制,详细介绍了从JS反混淆、算法逆向到动态Token生成的全流程实战方法。文章系统阐述了如何通过模拟浏览器指纹、移植关键算法或嵌入JS引擎来构建自动化应对策略,并提供了稳健的令牌管理与系统架构设计思路,帮助开发者在合规前提下提升自动化工具的适应性。

jenkins8butler的博客 518

kafka集群跨区域跨集群同步方案MirrorMaker1 —— 筑梦之路

acks 指定在集群中有多少个分区副本收到消息,生产者才会认为消息写入成功,对于消息是否丢失有比较大的影响,有3个值可选,0 1 all , 其中0 、1都可能会丢失数据,all安全性最高,效率最低,2个以上分区副本时不丢失任何数据。auto.offset.reset 消费者在无效偏移量、没有偏移量的情况下如何处理,默认是latest,从最新记录读取,容易丢失数据,这里设置为从头开始,避免丢失数据。max.poll.interval.ms 消费者处理逻辑的最大时间。下面介绍一则实战案例。

筑梦之路 1790

2026年数学建模国赛B题无线电干扰源的快速自动定位与清除 论文详细解析

数学建模竞赛论文无线电干扰源的快速自动定位与清除2026 年高教社杯全国大学生数学建模竞赛 B 题完整求解论文交会定位、极大极小测点优化、自适应多频道搜索与定向源恢复的统一建模模型、算法、代码、图表与验证一体化交付本文研究圆形目标区域中多个未知无线电干扰源的快速检测、定位与清除问题,建立了由误差楔交会模型、角度观测信息模型、分层勘测模型、鲁棒射线交会模型和定向覆盖反馈模型组成的统一求解框架。模型同时覆盖题目中的四个子问题:多测向射线形成的多边形定位区域及直径、第二个测点的极大极小优选、全向源自动搜索清除策略

YOLO 360

Apache Kafka 跨集群复制实现方案

本文介绍了Kafka跨集群数据复制的实现方案,重点推荐MirrorMaker 2作为主流解决方案。文章对比了MirrorMaker 1与MirrorMaker 2的核心差异,详细说明了MirrorMaker 2的配置示例和核心功能,包括自动Topic发现、Offset同步等特性。同时介绍了Confluent Replicator和自定义解决方案等替代方案,并阐述了实施时需要考虑的网络要求、性能优化和数据一致性等关键因素。最后列举了跨集群复制的典型应用场景,如灾难恢复、地理分布等。

xu990128638的专栏 548

IEC104协议学习专栏内容规划

IEC104协议的编程学习

sixtome 1110

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【Kafka】深入理解 Kafka MirrorMaker2 - 理论篇

摘要:本文介绍了Kafka MirrorMaker 2(MM2)的高可用集群搭建实践。作为基于Kafka Connect框架的跨集群数据同步方案,MM2通过四个核心组件实现数据同步、位移同步和健康监测。其核心设计包括自动添加集群前缀的远程主题机制和消费位移同步功能,有效解决了命名冲突和容灾切换问题。文章详细解析了MM2的工作原理、核心配置参数及最佳实践,如分区一致性维护和循环复制保护等,为构建复杂Kafka架构提供了可靠方案。建议生产环境充分测试并关注内部Topic副本数设置。

showyoui的博客 1764

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Kafka数据迁移全解析:同集群和跨集群

Kafka数据迁移全解析:同集群和跨集群

虽非技冠群英首,愿与同道共长歌; 大鹏一日同风起,扶摇直上九万里; 3158

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Apache Kafka 跨集群复制实现方案详解

编写流处理应用实现定制化复制:开发专用连接器。

m0_74824496的博客 24

Kafka集群数据迁移方案:Kafka MirrorMaker2 实践

Kafka集群数据迁移方案:Kafka MirrorMaker2 实践

虽非技冠群英首,愿与同道共长歌; 大鹏一日同风起,扶摇直上九万里; 797

KIP-382: MirrorMaker 2.0

Status Motivation Public Interfaces Proposed Changes Remote Topics, Partitions Aggregation Cycle detection Config, ACL Sync Internal Topics Remote Cluster Utils MirrorClient Rep...

weixin_30770495的博客 552

kafka学习(七)

            跨集群数据镜像 跨集群镜像的使用场景 1.区域集群和中心集群 2.冗余,发生紧急情况下使用第二个集群,保存相同的数据。 3.云迁移 多集群架构 跨集群中心通信的一些现实情况 1.高延迟 2.有限的宽带 3.高成本 hub和spoke架构 这种架构适用于一个中心kafka集群对应多个本地kafka集群的情况。 双活架构,集...

weixin_30338461的博客 113
上一篇: 利用 MongoVUE 工具实现mysql 库到 copy 到mongodb
下一篇: 架构高可用mongodb 集群文档
rtnull
博客等级 码龄16年 5粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值