多数据中心kafka异地双活
mm2
A机房:集群在双活前写入一些topic写入一些数据,测试同步之类的
/apprun/kafka/bin/kafka-console-producer.sh -broker-list 192.168.109.139:9092 -topic test
/apprun/kafka/bin/kafka-console-consumer.sh --bootstrap-server 192.168.109.139:9092 -topic test
/apprun/kafka/bin/kafka-topics.sh --create -zookeeper 192.168.109.139:2181 -topic hello -replication-factor 2 -partitions 3
[root@kafka03 ~]# /apprun/kafka/bin/kafka-topics.sh --list -zookeeper 192.168.109.138:2181,192.168.109.139:2181
/apprun/kafka/bin/kafka-topics.sh -zookeeper 192.168.109.138:2181,192.168.109.139:2181 -topic test --describe
/apprun/kafka/bin/kafka-consumer-groups.sh --bootstrap-server 192.168.109.139:9092 --list
/apprun/kafka/bin/kafka-consumer-groups.sh --bootstrap-server 192.168.109.139:9092 --group console-consumer-12150 --describe
上面的截图只是查看当前A机房的状态,B机房kafka是全新:
vim /apprun/kafka/config/mm2.properties
先在B机房手动启动双活配置:
[root@kafka11 config]# /apprun/kafka/bin/connect-mirror-maker.sh /apprun/kafka/config/mm2.properties
看到
然后我们查看2个集群的状态数据等信息...
查看对比主题:
我们在hy集群全量消费一下test看看数据是不是正确:
我从新在A机房kafka上新建一个topic(ceshi),用testwang-consumer-group这个消费组去消费,我们这里采用配置文件消费/apprun/kafka/config/consumer.properties 在这个配置文件里定义连接,消费组名
A:
/apprun/kafka/bin/kafka-topics.sh --create -zookeeper 192.168.109.139:2181 -topic ceshi -replication-factor 2 -partitions 3
对应的hy机房kafka会自动生成一个us-sq.ceshi
A:生产、消费
[root@kafka01 ~]# /apprun/kafka/bin/kafka-console-producer.sh -broker-list 192.168.109.139:9092 -topic ceshi
[root@kafka02 config]# /apprun/kafka/bin/kafka-console-consumer.sh --bootstrap-server 192.168.109.138:9092,192.168.109.139:9092,192.168.109.140:9092, --topic ceshi --consumer.config /apprun/kafka/config/consumer.properties
查看日志同步情况,停掉A的testwang-consumer-group消费组消费继续生产一些数据,然后在hy机房用testwang-consumer-group消费,看是否是继续消费~
理论:此时B机房kafka数据是已经全同步过来了,(数据是有的)(如果想验证数据可以用其他消费组消费一下全量数据,切记不要用我测试的testwang-consumer-group组),testwang-consumer-group的消费组的偏移量应该是和sq一样,还有8条未消费的数据
此时在hy机房用testwang-consumer-group组消费us-sq.ceshi
我这里是虚拟机抗不住2个集群和一些应用,The request timed out ;正常的话可以看到继续的那8条数据;既然看不到我们来对比2边集群的topic(ceshi)的对应分区数据是不是一样就好
A
B
可以看到相应分区的offset是一样的,不像mm1那样。。。这里A由于我们手动停了消费可以看到还有3+3+2=8条数据没消费,B因为我们刚继续消费了已经都消费掉了,虽然没看到数据,这是由于我机器的原因和配置的原因;我们可以反复操作几次验证
A
B接着consumer-offset消费:(这是我们看到是接着滞留的消费)
对比俩边的偏移量
备注:双活架构业务消费就得模糊匹配consumer,如下
[root@kafka13 ~]# /apprun/kafka/bin/kafka-console-consumer.sh --bootstrap-server 192.168.109.142:9092 --from-beginning --whitelist 'us-sq.test|test|hy.test'