卡夫卡的事件广播?

Event broadcasting in Kafka?

有没有一种方法可以将事件传递给主题的每个订阅者,而不考虑消费者群体?想想“刷新本地缓存”这种场景

对于Kafka而言,没有消费者组是无法订阅主题的。

开箱即用,这不是 Kafka 消费者的模式;没有办法让一个组中的所有消费者都读取来自所有分区的所有消息。消费者客户端的数量不能多于分区(因此很难“扇出”),并且在消息偏移量被提交之前只有一条消息发送给任何一个消费者并且整个消费者组寻求这些偏移量以消费以后的事件。

您需要在消费者之上增加一个层,以将自己与消费者组的限制分离开来。

例如,使用 Interactive Queries,您将使用一个主题并根据传入的数据构建一个 StateStore,从而有效地构建一个分布式缓存。有了它,您可以在 RPC 层(在那些文档中提到)中分层,允许外部应用程序通过您选择的协议(例如 HTTP)稍后查询和轮询该数据。从轮询数据的应用程序中,您可以选择通过您选择的任何方法转发“通知事件”。

至于已经公开大部分开箱即用的框架,请查看Azkarra Streams(我没有隶属关系)


或者您可以使用 Kafka Connect 等替代解决方案,并将数据写入 Slack、Telegram 等“留言板”,许多人会在其中明确订阅这些频道通知。