zl程序教程

您现在的位置是:首页 >  大数据

当前栏目

kafka消息顺序性学习

2023-09-14 09:11:19 时间

转自:https://cloud.tencent.com/developer/article/1839597

1.介绍

全局有序:需要1个Topic只能对应1个Partition,对应的consumer也要使用单线程或者保证消费顺序的线程模型。

局部有序:在发消息的时候指定Partition Key,Kafka对其进行Hash计算,根据计算结果决定放入哪个Partition。这样Partition Key相同的消息会放在同一个Partition。此时,Partition的数量仍然可以设置多个,提升Topic的整体吞吐量。在不增加partition数量的情况下想提高消费速度,可以考虑再次hash唯一标识(例如订单orderId)到不同的线程上,多个消费者线程并发处理消息(依旧可以保证局部有序)。

消息重试对消息消费也有影响。不严格保证顺序性。