Kafka主题顺序

Kafka topic order

我有一个 Kafka 连接器,使用如下内容:

SELECT CAST ( id as VARCHAR) as key_id, id ...
FROM table1 
JOIN (SELECT id as tID FROM table1 t WHERE t.id = 87002) v 
ON v.tID = id 

如果我使用 ORDER BY ID 对数据库执行,我会按照我期望的顺序使用以下 ID 获取记录

322633
324066
324084
324107

我已经指定了连接器拉力递增,因此连接器添加了以下内容:

WHERE id > ? ORDER BY id ASC 

这是我感到困惑的地方。在此连接器写入的流中,记录以不同的顺序显示!他们在

322633
324084
324107
324066   (huh!!!?) 

如果能帮助理解这种行为,那就太好了。

Kafka 是一个分布式消息系统,因此即使它按顺序从源数据库中获取消息,但消息将根据定义的键分布在主题的多个分区上。 Kafka 保证维护每个分区的顺序而不是跨分区。

因此消费者可以以任何顺序从主题中获取消费消息,消费者端没有保证顺序。

如果您严格要求保持秩序,您可以使用单个分区主题,但在那种情况下,您可能会失去并行性。