Kafka通过微服务,订阅非存在主题

时间:2017-11-10 14:50:20

标签: java spring-boot apache-kafka-streams

我有一个系统构建了多个微服务(java spring boot),通过grpc和avro消息进行通信。它使用Kafka队列。 我的问题是:服务正在按顺序构建,我的一个服务订阅了Kafka的主题,然后另一个发送消息并创建它。我没有收到任何错误,所以它似乎工作,但不是。那个话题当时并不存在,当它收到消息时,消费者服务并没有注意到它。如果我重新启动客户端服务,它可以加入主题并正常工作。 我想解决消费者可以创建订阅的主题,或者如果没有收到任何消息则尝试重新连接。

1 个答案:

答案 0 :(得分:1)

是的,我也看到了这个问题。我们提出的解决方案/出于这个原因和其他原因最简单的解决方案是通过部署微服务来烘焙创建主题。 (长话短说:我们在CI / CD盒上调用kafka-topics.sh,针对相应的Zookeeper和经纪人)

如果微服务的部署脚本知道要创建的主题,并确保在应用程序启动之前创建它们,那么问题就会避免。