我正在尝试用kafka解决以下问题。 有一个话题。我们称之为src-topic。我不时收到这个主题的记录。我想将这些值存储在ktable中,并每隔10秒将存储在ktable中的值发送到dst-topic。当我第一次从这个ktable发出一个值时,我想将1附加到我发出的记录中。以后每次我都要将0附加到发出的记录中。
我正在寻找一个正确且优选惯用的解决方案。 我看到的解决方案之一是当我从src-topic中摄取时附加1的记录,然后在ktable中存储附加0的记录。另一个主题是从这个ktable读取并定期发出记录。这种方法的问题在于它具有竞争条件。
任何建议都将受到赞赏。
答案 0 :(得分:0)
没有直接的方法来做到这一点。注意,KTable
是更改日志流(它可能在内部有一个表状态 - 并非所有KTable都有状态 - 但这是一个实现细节。)
因此,KTable
是一个流而你无法刷新流...而且因为状态(如果有的话)是内部的,你也不能刷新状态。
您只能通过交互式查询访问状态,该查询也允许进行范围扫描。但是,这不会向下游发出任何内容,而是将数据提供给应用程序的“非Streams部分”。
我认为,您需要使用低级处理器API来获得所需的结果。