Dar*_*ren 3 apache-kafka apache-kafka-streams
我的理解是kafka流支持分区。我想知道当连接来自两个不同主题的数据时它是如何工作的?我假设为了连接基于两个不同主题的数据,客户端应用程序必须以某种方式保证从两个主题获取的消息共享相同的密钥。只是想知道 kafka Streams 是如何做到这一点的?
能够进行stream-stream、ktable-ktable或stream-ktable连接有几个先决条件;
TopologyBuilderException
在即将分配分区时会在运行时抛出异常。除了此要求之外,任何连接都可以工作,但为了使其正常工作,必须满足许多附加要求,例如:
GlobalKTable 连接没有任何此类要求,并且将适用于每个主题,无论分区数量、分区策略如何,因为 globalKTable 的所有数据都将呈现给每个流实例。
当消息生成时,它们将根据其键和分区策略发送到分区,流 API 将每个主题的相同主题分区分配给同一处理器,以便来自同一主题的具有相同键的所有相关消息将在同一处理器中处理。对于窗口连接,消息时间戳被认为是查找要加入该特定窗口的消息,并在连接完成后发出结果。
归档时间: |
|
查看次数: |
2476 次 |
最近记录: |