开发者社区> 问答> 正文

zookeep和kafka集群做倒换测试后生产数据写入无效

各位大佬!我这里用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

  1. 恢复centos1的网络,查看ZooKeeper状态,并启动kafka服务 [root@centos1 bin]# ./zkServer.sh status Mode: follower [root@centos1 bin]# kafka-server-start.sh /home/bigdata/kafka_2.12-2.5.0/config/server.properties

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 也就是说生产数据写入是失败的,请教如何解决

展开
收起
侠客张 2023-07-03 21:05:57 47 0
2 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    提到的 ZooKeeper 和 Kafka 集群,是一个常用的分布式消息队列系统,用于实现高可靠的数据传输和处理。在进行倒换测试(failover test)时,可能会出现一些问题,导致生产数据无法写入。

    以下是可能的原因和解决方法:

    ZooKeeper 和 Kafka 集群状态异常:在进行倒换测试时,可能会导致 ZooKeeper 和 Kafka 集群状态异常,例如节点宕机、网络延迟等。这会导致生产数据无法正确写入,需要检查集群状态,并进行必要的维护和修复。

    生产者配置错误:另外,如果生产者的配置不正确,也会导致生产数据无法写入。您需要检查生产者的配置文件,确保配置正确并符合集群要求。

    消费者组设置不当:如果消费者组的设置不当,可能会导致生产数据无法正确写入。您需要检查消费者组的配置文件,确保设置正确,并根据需要进行调整。

    数据格式问题:最后,如果数据格式不正确,也会导致生产数据无法写入。您需要检查数据格式是否符合要求,并根据需要进行转换或调整。

    2023-07-31 11:04:42
    赞同 展开评论 打赏
  • 值得去的地方都没有捷径

    根据您提供的信息,您的问题可能是由于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的官方文档,以获取更多关于配置和故障排除的信息。

    2023-07-03 21:22:38
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Java Spring Boot开发实战系列课程【第16讲】:Spring Boot 2.0 实战Apache Kafka百万级高并发消息中间件与原理解析 立即下载
MaxCompute技术公开课第四季 之 如何将Kafka数据同步至MaxCompute 立即下载
消息队列kafka介绍 立即下载