首页 > 其他 > 详细

Kafka MirrorMaker实践

时间:2016-04-23 02:10:26      阅读:583      评论:0      收藏:0      [点我收藏+]

最近准备使用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实践

原文:http://kane-xie.iteye.com/blog/2292652

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!