需求
在一个在线商城中,用户下单后需要进行订单的处理。为了提高订单处理的效率和可靠性,我们使用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配置文件
kafka日志查看
state-change.log 报错
Failed to elect leader for partition __consumer_offsets-27 under strategy
文心一言
网络解决办法
问题原因 新增加的副本的offset 副本的offset比leader的新 所以在elect的时候出现问题
在kafka的home path 的bin目录下 执行自带平衡topic 脚本
尝试执行命令 还是报错
解决
修改kafka配置文件server.properties
1)zookeeper修改为单机
2)num.partitions,offsets.topic.replication.factor保持为1
3)选择性将监听注释
再次启动kafka服务,开启消费者和生产者,发现生产的消息,本机无法消费到,原因应该是zookeeper目录下的_consumer_offset有问题,默认偏移量出错,导致接收不到,除非是从头消费。
将consumer_offset 删除
具体看参考
最终问题解决