文档章节

【Kafka】MirrorMaker 跨集群同步方案

HarryWu
 HarryWu
发布于 2016/04/15 10:07
字数 563
阅读 645
收藏 1
点赞 1
评论 0

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
粉丝 5
博文 107
码字总数 48768
作品 0
马鞍山
百亿访问量的监控平台如何炼成?

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

English0523 ⋅ 2017/12/27 ⋅ 0

kafka的 配置怎么陪

ZooKeeper Root zookeeper.chroot Kafka(服务范围) Enable Kerberos Authentication kerberos.auth.enable Kafka(服务范围) Topic Auto Creation auto.create.topics.enable Kafka(服务......

Baclk5 ⋅ 2016/12/09 ⋅ 0

Elasticsearch 跨集群同步

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

35220579 ⋅ 06/04 ⋅ 0

​福利丨又一波大数据新书推介,来做第一个吃螃蟹的人吧!

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

DBAplus社群 ⋅ 2017/12/20 ⋅ 0

从美图容器优化实践谈Kubernetes网络方案设计

摘要:本文通过介绍美图线上容器化的实践经验,包括线上遇到的实际问题,来探讨 Kubernetes 环境下的网络方案设计。值得正在转型 K8S 的架构师学习和借鉴。 作者:李连荣,美图高级系统研发工...

高可用架构 ⋅ 01/11 ⋅ 0

如何基于MySQL及Redis搭建统一的KV存储服务

本文介绍基于MySQL及Redis搭建统一的kv存储服务:常用部署方式及其特点,Cluster manager,MySQL和Redis集群方案,以及Sync数据同步服务。 一、MySQL+Redis 常用部署方式 1.1 拓扑 1.2 特点 ...

烂猪皮 ⋅ 04/22 ⋅ 0

改朝换代:MySQL Group Replication

Paxos将成为这个新时代的主宰,这点姜老师深信不疑。四五年前甚至知道现在,仍有很多人怀疑MySQL是否能取代Oracle数据库,多年后腾讯、网易、阿里等互联网公司们用自己的实际案例大声地告诉那...

姜 承尧 ⋅ 2017/08/24 ⋅ 0

gt1987/gt.rediscachemanager

基于stackexchange.redis的redis客户端封装 配置化 支持redis各种数据类型的基本操作 支持读写分离 支持在客户端层面实现的redis集群 支持多组redis集群 数据同步 异常切换 支持跨IDC的高可用...

gt1987 ⋅ 04/24 ⋅ 0

ArangoDB 3.3 Milestone 1 发布,多模型 NoSQL 数据库

ArangoDB 是一个开源的分布式原生多模型数据库 (Apache 2 license)。 ArangoDB 3.3 Milestone 1 发布了,主要改进内容包括 ArangoDB 对多数据中心的初步支持。可让你在不同的数据中心分别运行...

周其 ⋅ 2017/10/17 ⋅ 2

福利丨这也许是目前市面上最权威的Kafka学习指南!

Kafka,不是村上春树的《海边的卡夫卡》,不是《变形记》的作者弗兰兹·卡夫卡。程序员世界里的 Kafka,有三分之一的世界 500 强公司都在使用它发布和订阅、存储及实时地处理大规模流数据。 ...

DBAplus社群 ⋅ 01/15 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring Boot整合模板引擎thymeleaf

项目结构 引入依赖pom.xml <!-- 引入 thymeleaf 模板依赖 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId......

yysue ⋅ 8分钟前 ⋅ 0

ConstraintLayout使用解析

AndroidStudio3.0创建Project默认的布局就是ConstraintLayout。 AndroidStudio3.0前的可以自己修改,使用ConstraintLayout。 为了要使用ConstraintLayout,我们需要在app/build.gradle文件中...

_OUTMAN_ ⋅ 20分钟前 ⋅ 0

OSChina 周三乱弹 —— 这样的女人私生活太混乱了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ 胖达panda :你经历过体验到人生的大起大落吗?我一朋友在10秒内体验了,哈哈。@小小编辑 请点一首《almost lover》送给他。 《almost love...

小小编辑 ⋅ 53分钟前 ⋅ 8

自己动手写一个单链表

文章有不当之处,欢迎指正,如果喜欢微信阅读,你也可以关注我的微信公众号:好好学java,获取优质学习资源。 一、概述 单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对...

公众号_好好学java ⋅ 58分钟前 ⋅ 0

Centos7重置Mysql 8.0.1 root 密码

问题产生背景: 安装完 最新版的 mysql8.0.1后忘记了密码,向重置root密码;找了网上好多资料都不尽相同,根据自己的问题总结如下: 第一步:修改配置文件免密码登录mysql vim /etc/my.cnf 1...

豆花饭烧土豆 ⋅ 今天 ⋅ 0

熊掌号收录比例对于网站原创数据排名的影响[图]

从去年下半年开始,我在写博客了,因为我觉得业余写写博客也还是很不错的,但是从2017年下半年开始,百度已经推出了原创保护功能和熊掌号平台,为此,我也提交了不少以前的老数据,而这些历史...

原创小博客 ⋅ 今天 ⋅ 0

LVM讲解、磁盘故障小案例

LVM LVM就是动态卷管理,可以将多个硬盘和硬盘分区做成一个逻辑卷,并把这个逻辑卷作为一个整体来统一管理,动态对分区进行扩缩空间大小,安全快捷方便管理。 1.新建分区,更改类型为8e 即L...

蛋黄Yolks ⋅ 今天 ⋅ 0

Hadoop Yarn调度器的选择和使用

一、引言 Yarn在Hadoop的生态系统中担任了资源管理和任务调度的角色。在讨论其构造器之前先简单了解一下Yarn的架构。 上图是Yarn的基本架构,其中ResourceManager是整个架构的核心组件,它负...

p柯西 ⋅ 今天 ⋅ 0

uWSGI + Django @ Ubuntu

创建 Django App Project 创建后, 可以看到路径下有一个wsgi.py的问题 uWSGI运行 直接命令行运行 利用如下命令, 可直接访问 uwsgi --http :8080 --wsgi-file dj/wsgi.py 配置文件 & 运行 [u...

袁祾 ⋅ 今天 ⋅ 0

JVM堆的理解

在JVM中,我们经常提到的就是堆了,堆确实很重要,其实,除了堆之外,还有几个重要的模块,看下图: 大 多数情况下,我们并不需要关心JVM的底层,但是如果了解它的话,对于我们系统调优是非常...

不羁之后 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部