我的samza作业有很多任务,每个任务在其嵌入式存储中都具有一些状态。我想将此商店公开,以通过某种RPC机制供外界阅读。最好的解决方案是什么?
这是Samza文档中有关此内容的一段:
Samza当前没有与DRPC等效的API,
但您可以使用Samza的视频流自行构建
处理原语。
我想到的唯一解决方案是,除了正常处理之外,还要使我的任务在特殊请求主题上使用具有某些相关ID的请求消息,并将具有相同相关ID的响应消息放入特殊响应主题。因此,这就像RPC-over-Kafka解决方案,在我看来似乎不是最佳选择。
任何想法都欢迎!
最佳答案
据我所知,嵌入式商店是在Kafka主题下备份的。当您在商店中设置商品时,将向该主题生成消息。因此,您可以使用此主题,并且可以将嵌入式存储“克隆”到其他数据库。然后,您可以查询数据库。或者,您可以仅使用数据库而不是嵌入式存储。但是这种方法可能会在您的Samza工作中导致性能问题...