【发布时间】:2016-02-21 11:35:36
【问题描述】:
我创建了一个订阅两个主题 TopicA 和 TopicB 的消费者。 当消费者收到来自 TopicA 的消息时,我的业务逻辑是将 ObjectA 存储到 MySQL 中。 当消费者收到来自TopicB的消息时,我的业务逻辑是更新ObjectA。
但现在的问题是: TopicA 和 TopicB 是相互独立的。 消费者可能会先收到来自 TopicB 的消息,然后再收到来自 TopicA 的消息。 尝试更新 ObjectA 时,发现它在 mysql 中不存在,然后会抛出 NullPointerException。
有什么方法可以配置 TopicA 和 TopicB 以确保消息先从 TopicA 接收,然后从 TopicB 接收。
换句话说,如何在主题之间建立依赖关系?
【问题讨论】:
-
如何将数据发送到 TopicA 和 TopicB?数据是否保证在 TopicB 之前发送到 TopicA 并且您只想以正确的顺序读取它?或者数据可以在 TopicA 之前发送到 TopicB 并且您只想确保它在 TopicA 之前在 TopicB 中?
-
为什么需要两个不同的主题?只需使用一个主题来提升对象。
-
如果topic的partition为1,使用一个topic可以解决我的问题。但是对于更多partition,它仍然无法正常工作。
标签: dependencies apache-kafka kafka-consumer-api apache-zookeeper