专栏首页上云那些事Kafka MirrorMaker 跨集群同步工具详解
原创

Kafka MirrorMaker 跨集群同步工具详解

一、MirrorMaker介绍

MirrorMaker是Kafka附带的一个用于在Kafka集群之间制作镜像数据的工具。该工具从源集群中消费并生产到目标群集。这种镜像的常见用例是在另一个数据中心提供副本。

图1. MirrorMaker

对于迁移的topic而言,topic名字一样, partition数量可以不一样,消息的offset会不一样。

二、注意事项

1)whitelist和blacklist支持正则表达式。比如需要包含两个topic可以这样写,--whitelist 'A|B' or --whitelist 'A,B' ,或者想迁移所有topic可以这样写 --whitelist '*'

2)注意在迁移之前创建好相关topic以及规划好partition数量。

3)老版本和新版本迁移主要考虑consumer和producer的兼容性

4)如果允许的话,建议将MirrorMaker部署在目标集群内,这是因为如果一旦发生网络分区,消费者与源集群断开连接比生产者与目标集群断开连接要安全。如果消费者断开连接,那么只是当前读取不到数据,但是数据仍然在源集群内,并不会丢失;而生产者断开连接,MirrorMaker便生产不了数据,如果MirrorMaker本身处理不当,可能会丢失数据。

5)开始之前配置好限流,防止影响原来集群的正常工作。

三、进度监控

1) 检测MirrorMaker提交到源集群的位移。我们可以使用kafka-consumer-groups来检测分区的最新位移以及MirrorMaker提交的位移,通过计算差值得到落后间隔。

2) 查看Ckafka的Topic相关监控,查看当前进度

四、使用方法(0.8.2版本)

运行指令:

> bin/kafka-mirror-maker.sh

--consumer.config consumer.properties

--producer.config producer.properties

--new.producer

--whitelist “my-topic1,my-topic2”

配置说明:

--consumer.config # 消费者配置,详情参考kafka consumer配置

--producer.config # 生产者配置,详情参考kafka producer配置

--whitelist #需要mirror的topic,支持Java正则表达式,例如'ABTestMsg,AppColdStartMsg’

--blacklist #不需要拷贝的topic,支持Java正则表达式

--num.producers #producer数量,默认为1

--num.streams #consumer数量,默认为1

--queue.size #consumer和producer之间缓存的queue size,默认10000

Config demo

mirror_maker_consumer.properties 文件

zookeeper.connect=ZK_IP:PORT

group.id=mirror_maker-group

fetch.message.max.bytes=1048576

auto.commit.enable=true

auto.offset.reset=smallest

auto.commit.interval.ms=1000

mirror_maker_producer.properties 文件

bootstrap.servers=broker_ip:port

acks=-1

block.on.buffer.full=true

linger.ms=10

batch.size=16384

retries=3

五、使用方法(0.10.2版本)

运行指令:

> bin/kafka-mirror-maker.sh

--consumer.config consumer.properties

--producer.config producer.properties

--whitelist “my-topic1,my-topic2”

Config demo

mirror_maker_producer.properties 文件

bootstrap.servers=broker_ip:port

acks=1

linger.ms=100

batch.size=16384

retries=3

mirror_maker_consumer.properties 文件

bootstrap.servers=broker_ip:port

group.id=mirror_maker-group

enable.auto.commit=true

auto.offset.reset=earliest

auto.commit.interval.ms=1000

更多相关配置请参考: https://kafka.apache.org/0102/documentation.html

原创声明,本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

登录 后参与评论
0 条评论

相关文章

  • Cloudera Streams Management正式GA

    上个月Cloudera发布Cloudera Stream Processing,这个解决方案让所有Cloudera客户都能获得最新的,安全版本的Apache K...

    Fayson
  • 独家分享:Kafka集群间信息复制攻略来了!

    自2006年以来,曾就职于SonyEricsson、SAP等多家公司,历任软件开发工程师,数据开发工程师,解决方案架构师

    腾讯云中间件团队
  • Kafka集群间信息复制

    Kafka 是最广泛使用的大数据消息分发组件,由于各种原因,大部分 Kafka 的用户都在不同的环境下保有多个集群,而数据整合分析的需求又要求这些集群的数据可以...

    heidsoft
  • 08 Confluent_Kafka权威指南 第八章:跨集群数据镜像

    本书大部分内容都在讨论单个kafka集群的配置、维护和使用。但是,在一些场景中,可能需要多集群架构。 在某些情况下,集群是完全分离的,他们属于不同部门的不同实...

    冬天里的懒猫
  • Kafka实战宝典:如何跨机房传输数据

    MirrorMaker 为Kafka 内置的跨集群/机房数据复制工具,二进制包解压后bin目录下有kafka-mirror-maker.sh,Mirror Ma...

    数据社
  • Kakfa 跨数据中心复制方案:MirrorMake

    Kakfa MirrorMaker是Kafka 官方提供的跨数据中心的流数据同步方案。其实现原理,其实就是通过从Source Cluster消费消息然后将消息生...

    zhangyunfeiVir
  • Kafka的基本概念与安装指南(单机+集群同步)

    最近在搞spark streaming,很自然的前端对接的就是kafka。不过在kafka的使用中还是遇到一些问题,比如mirrormaker莫名其妙的丢失数...

    用户1154259
  • Kafka异地双活深度讲解 - Mirrormaker V2

    总结:Apache Kafka Mirrormaker V1的解决方案在提供企业管理的灾难恢复方面存在局限性。MM V2(KIP-382)针对MM V1 进行了...

    Fayson
  • kafka:MirrorMaker-V1(MM1)到MirrorMaker-V2(MM2)

    在上篇文章中我们介绍了MirrorMaker-V1(MM1),本质上MM1是Kafka的消费者和生产者结合体,可以有效地将数据从源群集移动到目标群集,但没有提供...

    cosmozhu
  • kafka:MirrorMaker-V1(MM1)到MirrorMaker-V2(MM2)

    在上篇文章中我们介绍了MirrorMaker-V1(MM1),本质上MM1是Kafka的消费者和生产者结合体,可以有效地将数据从源群集移动到目标群集,但没有提供...

    cosmozhu
  • 使用mirrormaker工具同步CDH-kafka数据到TBDS-kafka

    把CDH集群的kafka数据同步到TBDS的kafka集群做测试,可以使用自带的mirrormaker工具同步

    袁宋
  • Kafka:MirrorMaker-V1搭建步骤

    通过上一篇文章Kafka:MirrorMaker-V1我们已经知道了MirrorMaker-V1的基本概念,这篇文章我们来给Kafka-cluster搭建一个m...

    cosmozhu
  • 自建kafka迁移到云上Ckafka整体方案

    3. CKafka 消费端新起消费者,配置新的 CKafka 集群的 bootstrap-server,消费新的 CKafka 集群。

    邓愉悦
  • Kafka 3.0 重磅发布,有哪些值得关注的特性?

    Apache Kafka 是一个分布式开源流平台,被广泛应用于各大互联网公司。Kafka 设计之初被用于消息队列,自 2011 年由 LinkedIn 开源以来...

    大数据技术架构
  • Kafka 3.0发布,这几个新特性非常值得关注!

    Apache Kafka 是一个分布式开源流平台,被广泛应用于各大互联网公司。Kafka 设计之初被用于消息队列,自 2011 年由 LinkedIn 开源以来...

    大数据老哥
  • Kafka 3.0重磅发布,弃用 Java 8 的支持!

    Kafka 具有四个核心 API,借助这些 API,Kafka 可以用于以下两大类应用:

    Spark学习技巧
  • Kafka 3.0重磅发布,都更新了些啥?

    Kafka 设计之初被用于消息队列,自 2011 年由 LinkedIn 开源以来,Kafka 迅速从消息队列演变为成熟的事件流处理平台。

    用户2781897
  • Kafka运维命令大全

    用户6070864

扫码关注云+社区

领取腾讯云代金券