【发布时间】:2019-09-26 03:13:40
【问题描述】:
假设,我有 topicA、topicB 和 topicC,这两个主题都由不同的事件类型隔离,基于域实体。 topicA 仅对 eventA 进行操作,topicB 保留 eventB,topicC 仅对 eventC 进行操作。所有事件都按业务领域相互关联,但由单独的微服务产生,应按特定顺序处理。
问题是,如何使用Apache Kafka按特定顺序引入消费事件,eventA然后等待接收eventB,然后当eventC接收到时将它们全部消费。
感谢任何反馈,欢迎提出任何问题。
一些注意事项: Kafka Streams 是一种很好的方法,但受到公司政策的限制。
另外,我查看了Join Pattern,但没有找到任何可靠的实施方法。
【问题讨论】:
-
Martin Kleppmann 有一篇关于这个主题的精彩文章:martin.kleppmann.com/2018/01/18/event-types-in-kafka-topic.html
-
我很好奇这些“公司政策”是什么让您可以使用生产者/消费者 API,但不能使用 Streams
-
@SeyedMortezaMousavi 感谢您的精彩文章。我对生产环境中的 kafka 和微服务没有丰富的经验,但是在生产环境中使用 kafka 的实践是什么,我的意思是每个业务实体有几十个主题是否可以,或者每个人都保留少量主题?跨度>
-
查看confluent.io/blog/… 了解如何选择主题和分区数。
标签: concurrency java-8 apache-kafka spring-kafka