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

Eliminate redundancy between ktable internal topic and user topic

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

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

是的,数据在两个主题(内部主题和用户主题)中看起来是一样的。

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

这取决于您希望如何使用数据。如果你想删除冗余,你可以在你的内部主题上设置一个短期保留。