一个微服务(单pod)可以发布和消费相同的Kafka主题吗?
以下是场景
名为“service1”的微服务正在使用来自Kafka主题“A”的消息。
名为“service2”的第二个服务发布由“service1”处理的关于Kafka主题“A”的消息,并将数据插入DB。
第三个微服务名称“service3”正在向Kafka主题“A”发布消息,该消息由“service1”使用,并更新在上一步中插入的DB记录。
“service1”检查数据库是否有特定更新,并生成事件检查数据库更新,直到满足条件。“service1”正在查找的数据库更新将仅在“service1”处理来自“service3”的消息时完成,如果(不满足条件)发布消息到Kafka主题“A”(事件生成,以便service1可以返回消费消息而不是超时。生成的消息再次被“service1”接收并处理以检查DB)
问题:在这种情况下,一旦“Service1”开始生成消息,就看不到来自“service3”的消息。“Service1”继续循环发布和使用它所生成的消息。
为什么来自“Servcie3”的消息没有被看到,尽管它每分钟都在生成?
注意:微服务是用python编写的,使用的是confluent Kafka。
尝试按比例增加pod数量,消息来自“服务3”,服务1退出循环。
在这里,纵向扩展不是可行的选择
1条答案
按热度按时间cu6pst1q1#
设置以下Kafka消费者设置工作
“自动偏移重置”:“最早”