【发布时间】:2021-10-03 09:47:45
【问题描述】:
数据在 Kafka 的 chat.* 主题中可用。
我们可以只启动多个消费者,然后将所有内容挂钩到这个单一事件中以供消费。
但是,并非所有产品都希望处理主题中的完整事件。我们希望根据 topic 中记录的内容,将 topic 分支为多个 topic。如何在 Kafka 中执行基于内容的路由?
Kafka Streams 非常适合 Java 应用程序,但我们需要一个跨公司、适用于多种语言的多堆栈解决方案?
我们正在为 Kafka 寻找一种事件路由器。 AWS 事件桥就是这样做的!但它不是卡夫卡。你如何在 Kafka 中进行这种基于内容的路由?
有什么建议吗?
【问题讨论】:
-
生产到主题时需要路由吗?还是从topic中消费,然后分别过滤处理?
-
每个需要事件的产品都应该只获取单独主题中的事件子集。我是否需要编写一个路由器,其他消费者会在哪里订阅,或者在 Kafka 中是否有更好的方法来做到这一点?
-
假设您参数化和打包/容器化一个将路由/过滤主题的 Kafka Streams(或 MirrorMaker)应用程序,它使用什么语言真的很重要吗?最终,这种“每个服务模型一个主题”将停止干净地扩展,例如,如果服务子集托管在同一个代理上,并且这些服务下降
-
@Cricketeer 他没有谈论他的代理部署架构,不太明白为什么它不能扩展?对于您的示例有 3 个副本,ha 部署,应该可以工作,您能详细说明一下吗?
-
是的,我为 Kafka 设置了 HA。复制将发生在多个节点上。
标签: events apache-kafka publish-subscribe observer-pattern event-driven-design