为什么应该使用 KStream 或 KTable?

ome*_*ack 6 apache-kafka apache-kafka-streams

我读了,但我无法理解太多。我读到可以使用 KTable 代替日志压缩。或者它还有更多功能。然而,我在这方面找不到一个很好的例子。我也无法在解释工作逻辑的良好来源中看到它。你能解释一下 ktable 和 kstream 的一个很好的例子吗?我能做什么?

cri*_*007 2

我读到可以使用 KTable 代替日志压缩

KTable 依赖于压缩状态存储主题。它们不是排他性的选择

或者它还有更多功能

那么,为什么要使用缓存或哈希图呢?同样的答案也适用于 KTable。额外的功能是它可以在应用程序的多个实例之间共享和分发


您可以对“流表对偶性”进行更多研究。

ktable 和 kstream 的示例以及我能做什么?

KStream 是主题中所有事件或经过筛选的事件子集的审核日志。很难快速挑选出任何给定的事件

KTable 保存流中最新的键控事件,并允许快速键查找

计数器是最简单的例子;您有一系列事件(例如,主题标签中的单词)

#kafka is great
working with #kafka today
#streaming all the things
Run Code Online (Sandbox Code Playgroud)

所以,这就是。然后,您需要将此流消费到聚合中,解析并计算主题标签,从而生成键值对

(kafka, 2)
(streaming, 1)
Run Code Online (Sandbox Code Playgroud)

但是,如果您要在第一个事件之后立即查询表(在表消耗剩余事件之前),您只会看到(kafka, 1).

  • 典型的例子是银行余额与银行对账单。您的余额是一个表,它汇总了语句(流)中的所有交易。当新交易发生时,每个帐户的余额仅保留一个数字。您可以从该流中创建欺诈警报或大额交易通知。从表中您可以检测透支余额或资金不足 (3认同)