欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Kafka MirrorMaker实践 博客分类: kafka kafkamirrormaker 

程序员文章站 2024-03-26 13:42:41
...

最近准备使用Kafka Mirrormaker做两个数据中心的数据同步,以下是一些要点:

 

  1. mirrormaker必须提供一个或多个consumer配置,一个producer配置,一个whitelist或一个blacklist(支持java正则表达式)
  2. 启动多个mirrormaker进程,单个进程启动多个consuemr streams, 可以提高吞吐量和提供容
  3. mirrormaker部署在destination datacenter,这样如果kafka集群之间发生网络问题,也不至于从src cluster拿到了数据但发不到dest cluster导致数据丢失
  4. mirrormaker不能防止数据循环发送,即如果使用mm将数据从ClusterA的TopicA复制到ClusterB的TopicA,另一个mm将数据从ClusterB的TopicA复制到ClusterA的TopicA,那么会产生endless loop,mm的负载会急剧上升
  5. mirrormaker的producer和consumer的一些配置的目标是数据不丢失,而不是高性能,它们分别是
  • acks=all(kafka consumer默认1), 意味着数据被拷贝到dest cluster的所有replicas之后才响应
  • retries=max integer(kafka producer默认0)
  • block.on.buffer.full=true(kafka produmer默认false)
  • max.in.flight.requests.per.connection=1(kafka producer默认5), 提升该值可以获得更快的速度,同时意味着如果mirrormaker挂掉,将会丢更多的数据
  • auto.commit.enable=false(默认true)
  • abort.on.send.failure=true(mirrormaker配置)

 

    6. 其他配置:

  • linger.ms=0(kafka producer默认0), 调高linger.ms会使mirrormaker能够将更多的消息打包发送以提升效率,同时意味着消息的平均延迟上升

    7. 可以给所有需要mm的topics设置优先级,优先级高的topic将获得更低的延迟,并且能在更短的时间内重启,重启之后也能更快的追上拷贝进度

相关标签: kafka mirrormaker