消除ktable内部主题和用户主题之间的冗余

问题描述 投票:0回答:1

我正在为书库编写应用程序,我有2个微服务:memberService和bookService。 memberService创建一个ktable成员(通过聚合另一个主题上的更改消息构建)供自己内部使用。 bookService还需要对该ktable的读访问权。目前我通过让memberService调用memberTable.toStream().to("memberTableTopic")来共享数据,并且我将bookService订阅到memberTableTopic。

根据我对ktables如何工作的理解,memberTableTopic中的数据将与ktable使用的后备内部主题相同。有没有一种消除这种冗余的好方法?我的bookService应该订阅内部主题吗?

apache-kafka apache-kafka-streams
1个回答
1
投票

是的,数据在两个主题中都是相同的 - 内部主题和使用内容。

概念上,KStream应用程序在内部使用内部主题。这意味着当重置应用程序ID时,这些内部主题将被删除,您将丢失数据。虽然用户主题存在于应用程序外部,但任何应用程序都可以随时使用。

这取决于您是否需要如何使用数据。如果要删除冗余,可以在内部主题上设置短暂保留。

© www.soinside.com 2019 - 2024. All rights reserved.