关于Kafka的那些坑(topic命名,一定不要用 点"."或者 下划线"_")

https://blog.csdn.net/csdn_wangqi/article/details/79238068

进来使用了Kafka消息队列,喜忧参半。

细数一下,踩过的坑。

1、最好不要用Windows服务器去搞,当然像本人这样被迫使用的,就硬着头皮搞。

Windows服务器搭建Kafka,首先先例少。其次稳定性,个人感觉要比Linux或者Mac上差远了。Windows上,停止Kafka后,在启动需要删掉log。否则会报错,log正在被另一个进程访问。Mac运行则没发现同样错误。

2、Kafka的topic命名,一定不要用 点"."或者 下划线"_"。本人亲测,下划线将会有坑。没有去细读底层代码,但实际运行发现

例如通道名 test_a  和 test。 两个通道就会有问题,本人亲测,向test发送消息,consumer收不到test通道的消息,向test_a发送消息,consumer监听test_a则可以收到。虽然没有深究根源,但建议各位直接使用全英文topic名,省去麻烦。另外对于大小写也存在问题,不要创建字母相同,仅大小写不同的topic。

3、关于删除Kafka的topic,尤其是在Windows下,很可能灰常麻烦。仅执行delete topic 是不好使的。还需要去zookeeper中删掉。

 删除命令:./bin/kafka-topics  --delete --zookeeper 【zookeeper server】  --topic 【topic name】

       执行zookeeper/bin/zkCli.cmd

扫描二维码关注公众号,回复: 1092272 查看本文章

 输入命令:ls /brokers/topics

 会看到topic 列表

然后输入:rmr /brokers/topics/【topic name】(替换需要删掉的topic)

4、可以考虑搭配数据库使用,数据库记录消息。这样即便消息队列挂掉,也有据可查。Kafka消息可以添加key,添加唯一key。便于查询记录。当然,这个根据需要,此条仅做讨论用。


猜你喜欢

转载自blog.csdn.net/libaineu2004/article/details/80318709