kafka实战报错解决问题

需求

在一个在线商城中,用户下单后需要进行订单的处理。为了提高订单处理的效率和可靠性,我们使用Kafka来实现订单消息的异步处理。当用户下单后,订单信息会被发送到Kafka的一个Topic中,然后订单处理系统会从该Topic中消费订单消息,进行订单处理。
模拟数据
以下是一条模拟订单数据的JSON格式:
{
“order_id”: 1,
“user_id”: 1001,
“product_id”: 2001,
“quantity”: 1,
“amount”: 100.0
}
我们可以根据这个格式生成100条模拟数据,并发送到Kafka的order_topic中进行订单处理。
要求:
1) 将模拟数据发送到kafka消息队列中
2) 接收kafka队列中的订单信息,并打印到控制台
相关知识点:kafka发送、接收消息

报错

brokerid 102-0 103-1 104-2 报错
kafka实战报错解决问题_第1张图片
文心一言
kafka实战报错解决问题_第2张图片
kafka配置文件
kafka实战报错解决问题_第3张图片
kafka日志查看
state-change.log 报错
Failed to elect leader for partition __consumer_offsets-27 under strategy
kafka实战报错解决问题_第4张图片
文心一言
kafka实战报错解决问题_第5张图片
网络解决办法
问题原因 新增加的副本的offset 副本的offset比leader的新 所以在elect的时候出现问题
在kafka的home path 的bin目录下 执行自带平衡topic 脚本
尝试执行命令 还是报错

解决

修改kafka配置文件server.properties
1)zookeeper修改为单机
kafka实战报错解决问题_第6张图片
2)num.partitions,offsets.topic.replication.factor保持为1
kafka实战报错解决问题_第7张图片
3)选择性将监听注释
kafka实战报错解决问题_第8张图片
再次启动kafka服务,开启消费者和生产者,发现生产的消息,本机无法消费到,原因应该是zookeeper目录下的_consumer_offset有问题,默认偏移量出错,导致接收不到,除非是从头消费。
将consumer_offset 删除
具体看参考

最终问题解决

参考
生产者可以顺利发送消息,消费者接受不到消息的处理方法

你可能感兴趣的:(数据治理,kafka,分布式)