正确使用kafka全局statestore进行查找



如果能听听大家的意见,看看这是不是一个好主意,因为我以前没有实现这样的东西的经验:

要求:

我有两个主题:主题book-info,主题category-info。在处理来自主题book-info的消息时,需要查找来自主题category-info的一些元数据。理想情况下,由于我们的设计准则,每个主题都应该在单独的应用程序和代码库中处理(我指定这一点是因为它是全局状态存储的约束)。此外,我们正在使用KStreams和Spring Kafka。

我有以下想法:

App1:从topic category-info中读取消息,并根据具体情况将其保存到全局状态库或从全局状态库中删除。

App2:从topic book-info中读取消息,在全局状态存储中进行查找以生成最终记录。

这是否有效,是否有更好的做法?谢谢你的建议!

说实话,当全局状态存储在一段时间内增长时,它将成为性能问题的瓶颈,特别是对于长时间运行的生产数据管道,除非您在这种状态存储上实现了更好的生命周期。

由于您正在为两个不同的源主题设计两个单独的应用程序,因此更好的选择是通过外部DB对记录进行查找,并且它将具有更好的控制。或者,您可以使用KSQL流/表运行交互式查询。

最新更新