各位大佬!我这里用zookeepapache-zookeeper-3.6.3-bin和kafkakafka_2.12-2.5.0集群做倒换测试,发现倒换完成后用TOPIC生产后,在TOPIC消费无法同步显示生产的数据,请教下如何解决! 1. ZooKeeper集群centos1为leader,centos2和centos3为follower [root@centos1 bin]# ./zkServer.sh status Mode: leader 2.关闭centos1网络,模拟服务器退网故障 [root@centos1 bin]# systemctl stop network 3.centos3选举为leader [root@centos3 bin]# ./zkServer.sh status Mode: leader 4.centos3的kafka生产数据,生产在centos1断网前就进行,模拟一直存在的数据生产 [root@centos3 bin]# kafka-console-producer.sh
--broker-list 192.168.15.112:9092,192.168.15.113:9092,192.168.15.114:9092
--topic clusterserver
741 777 999 4.centos1和centos2的kafka消费数据,其中在centos1断网前消费数据正常 [root@centos2 bin]# kafka-console-consumer.sh --bootstrap-server 192.168.15.112:9092, 192.168.15.113:9092, 192.168.15.114:9092 --topic clusterserver --from-beginning 741 777 999
6.centos1消费TOPIC无问题 [root@centos1 bin]# kafka-console-consumer.sh --bootstrap-server 192.168.15.112:9092, 192.168.15.113:9092, 192.168.15.114:9092 --topic clusterserver --from-beginning 741 777 999 7.centos3的kafka生产数据,继续生产手工录入数据后,centos1和centos2的消费数据不再变化了 [root@centos3 bin]# kafka-console-producer.sh
--broker-list 192.168.15.112:9092,192.168.15.113:9092,192.168.15.114:9092 \ --topic clusterserver
741 777 999 555 666 [root@centos1 bin]# kafka-console-consumer.sh --bootstrap-server 192.168.15.112:9092, 192.168.15.113:9092, 192.168.15.114:9092 --topic clusterserver --from-beginning 741 777 999 也就是说生产数据写入是失败的,请教如何解决
提到的 ZooKeeper 和 Kafka 集群,是一个常用的分布式消息队列系统,用于实现高可靠的数据传输和处理。在进行倒换测试(failover test)时,可能会出现一些问题,导致生产数据无法写入。
以下是可能的原因和解决方法:
ZooKeeper 和 Kafka 集群状态异常:在进行倒换测试时,可能会导致 ZooKeeper 和 Kafka 集群状态异常,例如节点宕机、网络延迟等。这会导致生产数据无法正确写入,需要检查集群状态,并进行必要的维护和修复。
生产者配置错误:另外,如果生产者的配置不正确,也会导致生产数据无法写入。您需要检查生产者的配置文件,确保配置正确并符合集群要求。
消费者组设置不当:如果消费者组的设置不当,可能会导致生产数据无法正确写入。您需要检查消费者组的配置文件,确保设置正确,并根据需要进行调整。
数据格式问题:最后,如果数据格式不正确,也会导致生产数据无法写入。您需要检查数据格式是否符合要求,并根据需要进行转换或调整。
根据您提供的信息,您的问题可能是由于ZooKeeper和Kafka集群的配置问题导致的。以下是一些可能的解决方案:
检查ZooKeeper集群的配置:确保所有的ZooKeeper节点都正确配置为集群模式,并且配置文件中的server.X参数(X为节点编号)正确设置。确保每个节点的myid文件中的编号与配置文件中的编号一致。
检查Kafka集群的配置:确保Kafka集群的server.properties文件中的broker.id参数设置正确,并且每个节点的listeners参数中包含所有节点的地址和端口。确保所有节点的zookeeper.connect参数指向正确的ZooKeeper集群地址。
检查网络配置:确保所有的节点之间可以相互通信,并且集群中的所有节点都能够访问到正确的ZooKeeper集群地址。检查防火墙设置,确保相关端口(例如ZooKeeper的2181端口和Kafka的9092端口)已经放行。
检查故障转移配置:在您的情况下,当centos1断网后,centos3被选举为新的leader。确保在故障转移发生后,Kafka集群中的所有节点都能够正确地感知到新的leader,并且消费者能够正确地从新的leader消费数据。
检查生产者和消费者的配置:确保生产者和消费者的配置文件中的bootstrap.servers参数正确设置为整个Kafka集群的地址列表,并且消费者的auto.offset.reset参数设置为earliest以确保能够从最早的消息开始消费。
如果您仍然无法解决问题,建议您查看Kafka和ZooKeeper的日志文件,以获取更详细的错误信息。您还可以参考Kafka和ZooKeeper的官方文档,以获取更多关于配置和故障排除的信息。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。