我正在为书库编写应用程序,我有2个微服务:memberService和bookService。 memberService创建一个ktable成员(通过聚合另一个主题上的更改消息构建)供自己内部使用。 bookService还需要对该ktable的读访问权。目前我通过让memberService调用memberTable.toStream().to("memberTableTopic")
来共享数据,并且我将bookService订阅到memberTableTopic。
根据我对ktables如何工作的理解,memberTableTopic中的数据将与ktable使用的后备内部主题相同。有没有一种消除这种冗余的好方法?我的bookService应该订阅内部主题吗?
是的,数据在两个主题中都是相同的 - 内部主题和使用内容。
概念上,KStream应用程序在内部使用内部主题。这意味着当重置应用程序ID时,这些内部主题将被删除,您将丢失数据。虽然用户主题存在于应用程序外部,但任何应用程序都可以随时使用。
这取决于您是否需要如何使用数据。如果要删除冗余,可以在内部主题上设置短暂保留。