文档章节

【Kafka】MirrorMaker 跨集群同步方案

HarryWu
 HarryWu
发布于 2016/04/15 10:07
字数 563
阅读 771
收藏 1

https://cwiki.apache.org/confluence/display/KAFKA/Kafka+mirroring+(MirrorMaker)

一、

Kafka's mirroring feature makes it possible to maintain a replica of an existing kafka cluster. The following diagram shows how to use the MirrorMaker tool to mirror a source kafka cluster into a target(mirror) kafka cluster.The tool uses a kafka comsumer to consume messages from the source cluster,and re-publishes those messages to the local(target)cluster using an embedded kafka producer.


二、

1.whitelist and blacklist 黑白名单

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

2.producer timeout

为了支持高吞吐量,你最好会用异步的内置producer,并将内置的producer设置为阻塞模式(queue.enqueueTimeout.ms=-1) 这样可以保证数据不会丢失。否则,异步producer的默认queue.enqueueTimeout.ms=0,如果producer内部的队列满了,数据会被丢弃,并抛出QueueFullException异常。而对于阻塞模式的producer,如果内部队列满了就会一直等到,从而有效的节制了内置的comsumer的消费速冻。你可以打开producer的trace logging,随时看到内部队列剩余量。

3.Producer的重试次数retries


三、

Source Kafka Cluster

A:==> 配置zk
[root@hftest0001 conf]# pwd
/opt/zookeeper-3.4.6/conf

[root@hftest0001 conf]# ll
total 16
-rw------- 1 root root  535 Jan 28 13:27 configuration.xsl
-rw------- 1 root root 2161 Jan 28 13:27 log4j.properties
-rw------- 1 root root 1043 Jan 28 13:31 zoo.cfg
-rw------- 1 root root  922 Jan 28 13:27 zoo_sample.cfg

[root@hftest0001 conf]# cat zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/zookeeper-3.4.6/data/
clientPort=2181

[root@hftest0001 config]# pwd
/opt/kafka_2.11-0.8.2.2/config

B:==> 配置kafka
[root@hftest0001 config]# cat server.properties
broker.id=201
port=9092
...
...
zookeeper.connect=${source_zk_ip}:2181
...

C:==> 启动source kafka
[root@hftest0001 kafka_2.11-0.8.2.2]# ./bin/kafka-server-start.sh config/server.properties &
...
...

D:==> 创建topic
[root@hftest0001 kafka_2.11-0.8.2.2]# ./bin/kafka-topics.sh --zookeeper 10.224.246.201:2181 --replication-factor 1  --partitions 1 --topic r1-p1-1 --create

E:==> 查看topic
[root@hftest0001 kafka_2.11-0.8.2.2]# ./bin/kafka-topics.sh --zookeeper ${source_zk_ip}:2181 --list
r1-p1-1
Target Kafka Cluster
同样的操作,step A,B,C,D,E

F:==>配置MirrorMaker
[root@hftest0004 config]# pwd
/opt/kafka_2.11-0.8.2.2/config

[root@hftest0004 config]# cat consumer.properties
zookeeper.connect=${source_zk_ip}:2181
zookeeper.connection.timeout.ms=6000
group.id=hftest-mirror-maker


[root@hftest0004 config]# cat producer.properties
metadata.broker.list=${target_broker_ip}:9092
producer.type=async
compression.codec=none
serializer.class=kafka.serializer.DefaultEncoder
############################# Async Producer #############################
queue.enqueue.timeout.ms=-1

[root@hftest0004 kafka_2.11-0.8.2.2]# ./bin/kafka-mirror-maker.sh --consumer.config config/consumer.properties --producer.config config/producer.properties ----num.producers 2 --whitelist r1-p1-1
校验:

启动一个producer向source kafka cluster push数据
启动一个consumer从source kafka cluster pull数据
启动一个consumer从target kafka cluster pull数据 ==> 看是否能pull到数据


© 著作权归作者所有

共有 人打赏支持
HarryWu
粉丝 7
博文 129
码字总数 52740
作品 0
马鞍山
私信 提问
怎么用Kafka 实现数据中心到数据中心的复制?

它能做什么? 此功能允许您在两个不同的数据中心A和B中运行两个ArangoDB 群集,并设置从A到B的异步复制。这意味着数据中心A中的群集A可以照常用于读取和写入操作以及所有更改数据通过网络复制...

GermanWifi
2017/10/30
0
4
百亿访问量的监控平台如何炼成?

作者简介:李春旭,2016年加入WiFi万能钥匙,现任WiFi万能钥匙高级架构师,十年互联网研发经验,喜欢折腾技术,曾供职于快钱、阿里巴巴、平安健康等公司,专注于以下领域:分布式监控平台、调...

English0523
2017/12/27
0
0
Elasticsearch 跨集群同步

高可用架构 ZSearch是目前公司内最大的Elasticsearch服务平台,随着业务的深入,越来越多的关键链路用户对数据的可用性和容灾能力提出更高的需求,而在这块领域 社区一直没有完整的解决策略,...

35220579
06/04
0
0
从github超24小时的故障看异地多活全局设计的重要性

我们先来回顾一下github这次事故: 2018年10月21日,github 在更换网络设备时,引发了美国东海岸网络中心和东海岸数据中心的网络链接发生了40秒的中断,最终导致多个mysql的主集群由Orchest...

银河1号
11/16
0
0
​福利丨又一波大数据新书推介,来做第一个吃螃蟹的人吧!

又到了每周发福利的时刻! 延续上期主题,本期给大家带来3本@图灵教育的大数据新书推荐 小编云: 经典读物固然能让收获有所保障 可新书却给人更多阅读的新鲜体验 来吧,一起做第一个吃螃蟹的...

DBAplus社群
2017/12/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Caffe(二)-Python-自定义网络

这里我们用一个例子先来体验一下 首先定义一下我们的环境变量 $PYTHONPATH,我这儿是Windows开发环境,至于Windows Caffe怎么编译由读者自己下去搞定 我使用的控制台是 Windows PowerShell 添...

Pulsar-V
48分钟前
4
0
ActiveMQ从入门到精通(二)之可靠性机制

ActiveMQ的可靠性机制 缘由( 确认JMS消息) 只要消息被确认之后,才认为消息被成功消费了。消息的成功消费包括三个阶段:客户端接收消息、客户端处理消息以及客户端确认消息。在事务性会话中...

一看就喷亏的小猿
56分钟前
3
0
源码分析 Mybatis 的 foreach 为什么会出现性能问题

背景 最近在做一个类似于综合报表之类的东西,需要查询所有的记录(数据库记录有限制),大概有1W条记录,该报表需要三个表的数据,也就是根据这 1W 个 ID 去执行查询三次数据库,其中,有一...

TSMYK
今天
8
0
IC-CAD Methodology企业实战之openlava

在云计算解决安全问题并成为IC界主流运算平台之前,私有的服务器集群系统仍然是各大IC公司的计算资源平台首选。 现在主流的服务器集群管理系统包括lsf,openlava,SkyForm,三者都属于lsf一系...

李艳青1987
今天
8
0
http response stream 字节流 接收与解码

在接收图片、音频、视频的时候,需要用到二进制流。 浏览器会发给客户端 字节Byte流,一串串的发过来_int8格式 -128~127(十进制),也就是8bit(位)。 客户端接收的时候,对接收到的字节收集,...

大灰狼wow
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部