当使用多个输入主题时,输入主题的不同消息速率是否会影响kafka流的处理速度



在我的kafka流应用程序中,我有10个输入主题(每个mysql表一个主题(正在阅读。某些主题的消息速率非常低,而其他主题的消息率略高。很少有几个话题能引起信息的激增。不知道是否会因为较慢主题的低消息速率而导致较快主题的kafka流处理停滞?如果我应该在拓扑中创建单独的源节点,以将较慢的主题与较快的主题隔离开来。

我的流应用程序从输入消息中提取信息,转到另一个服务以获取更多数据,并将其写入输出kafka主题。

这取决于。。。

如果不同的主题由不同的子拓扑(参见Topology#describe()的输出(处理,则每个主题都被单独处理,并且如果不同主题具有不同的数据速率,则不会产生影响。

如果您连接或合并多个主题(因此,它们由同一子拓扑处理(,则主题的进度"耦合"。这种耦合基于事件时间戳。因此,数据速率较高的主题很可能具有"更密集"的记录时间戳,因此处理的数据比数据速率较低的主题多。例如:

// just showing timestamps
topic-1 (partition-0): 3 13 23 33 43 53 63 73 83 93 103 113...
topic-2 (partition-0):  5              55             105
processing order:
3 5 13 23 33 43 53 55 63 73 83 93 103 105 113

因此,对于主题-2的每个记录,将处理主题-1的5个记录。

最新更新