在两个kafka集群同步topic

在两个kafka集群同步topic

目标:把debezium节点所在集群上的kafka集群的名为sysdata的topic同步到目标集群cdh上的kafka集群上。

前提:在目标集群的相关节点的hosts文件配置好源集群主机信息。

[root@master01 kafka]# vi /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.108.81 master01
192.168.108.82 slave01
192.168.108.83 slave02
192.168.108.190 debezium(把源集群节点的host信息配置到目标集群的hosts)

1.在源集群创建topic

bin/kafka-topics.sh --zookeeper debezium:2181 --topic sysdata 
--replication-factor 1 --partitions 1 --create


2.在目标集群创建相同的topic

bin/kafka-topics.sh --zookeeper master01:2181 --topic sysdata 
--replication-factor 1 --partitions 1 --create

3 在命令行配置同步文件及启动:
3.1在目标集群创建consumer-wsm.properties和producer-wsm.properties

consumer-wsm.properties配置源集群的相关信息

producer-wsm.properties配置目标集群的相关信息

[root@master01 kafka]# vi consumer-wsm.properties
zookeeper.connect=debezium:2181
bootstrap.servers=debezium:9092
group.id=groupwsm-01
[root@master01 kafka]# vi producer-wsm.properties
zk.connect=slave01:2181,slave02:2180,master01:2181
bootstrap.servers=slave01:9092,slave02:9092,master01:9092


3.2在目标集群启动MirrorMaker,指定白名单为要同步的topic名字
 

[root@master01 kafka]# bin/kafka-run-class.sh kafka.tools.MirrorMaker 
--consumer.config consumer-wsm.properties 
--producer.config producer-wsm.properties 
--whitelist 'sysdata'

4.生产数据并写到源集群的相关topic

5.在目标集群消费相关topic

补充:

如果使用的目标集群是cdh,则只需在cdh中启动kafka Mirrormaker 角色,然后在配置页面配置好source broker list、destination broker list和白名单的topic。

白名单:允许在两个集群同步的topic

黑名单:不允许在两个集群同步的topic

 

可选配置:

6.MirrorMaker的参数说明参考:

https://www.cnblogs.com/sunxucool/p/3913131.html

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要使用`KafkaTemplate`同步生产多个Kafka消息,您可以在循环中逐个发送消息到每个主题。下面是一个示例: ```java import org.apache.kafka.clients.producer.ProducerRecord; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.kafka.core.KafkaTemplate; import org.springframework.stereotype.Component; @Component public class KafkaSyncProducer { @Autowired private KafkaTemplate<String, String> kafkaTemplate; public void sendMessageToTopics() { String topic1 = "topic1"; String topic2 = "topic2"; // 发送到topic1 ProducerRecord<String, String> record1 = new ProducerRecord<>(topic1, "key1", "value1"); kafkaTemplate.send(record1).get(); // 同步发送并等待发送完成 // 发送到topic2 ProducerRecord<String, String> record2 = new ProducerRecord<>(topic2, "key2", "value2"); kafkaTemplate.send(record2).get(); // 同步发送并等待发送完成 System.out.println("消息发送完成"); } } ``` 在上述示例中,我们使用`KafkaTemplate`将消息同步发送到两个主题:`topic1`和`topic2`。通过调用`.get()`方法,我们等待发送完成并获取返回的`Future`对象。 请确保已正确配置`KafkaTemplate`和Kafka相关的属性,以便与Kafka集群进行通信。 使用`KafkaTemplate`的好处是,它提供了更高级别的抽象,使得与Kafka的交互更加简单和方便。您可以使用`KafkaTemplate`的其他方法来发送不同类型的消息、设置消息的分区等。 希望这对您有所帮助!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值