【发布时间】:2021-10-23 12:06:15
【问题描述】:
假设: api-gateway 后面有微服务,它们通过 HTTP 同步通信。显然,这些微服务中的每一个都是一个 Web 服务器。现在我希望我的微服务也能扮演 Kafka 生产者和“消费者”的角色。更清楚地说,我的微服务产生事件并为其他事件监听一些主题。
问题: 似乎传统上 Kafka 消费者使用无限循环来轮询消息并保持活动状态(发送心跳)我的进程线程正忙于为主机提供服务,并且不能被无限循环锁定。有没有办法像脉冲星侦听器或兔子一样以某种方式“收听”主题而不会阻塞线程? 由于我在开发过程中必须处理的技术复杂性,我不希望将我的 Web 服务器和消费者处理器分开。在这种情况下我可以使用 Kafka 流吗?我的假设有问题吗?
【问题讨论】:
标签: multithreading apache-kafka thread-safety microservices kafka-consumer-api