【kafka面试题2】如何保证kafka消息的顺序性

【kafka面试题】如何保证kafka消息的顺序性

一、整体策略

如何保证kafka消息的顺序性呢,其实整体的策略就是:我们让需要有序的消息发送到同一个分区Partition。
为什么说让有序的消息发送到同一个分区Partition就行呢,,下面我们来详细分析一下子。

二、分析

首先,我们知道kafka消息的收发是基于Topic(主题),消息通过Topic进行分类。单个Topic可以有多个Partition(分区,可以理解为一个队列),消息以追加的方式写入分区(Partition),然后以先入先出的方式读取。需要注意,由于一个主题一般包含几个分区,因此无法在整个主题范围内保证消息的顺序,但可以保证消息在单个分区内的顺序。同时,单个Partition在同一个消费者组内,只能被一个消费者消费。

所以基于上述kafka的特性,要保证kafka消息的顺序性,我们只要让需要有序的消息发送到同一个分区就行。
那么,kafka生产者如何将消息发送到同一个分区呢,这就涉及到了另一个问题kafka生产者的分区选择策略

三、kafka生产者的分区选择策略

Kafka生产者的分区选择策略是指在将消息发送到Kafka集群时,生产者决定将消息发送到哪个分区(Partition)。kafka分区选择策略如下:
1、指定了分区
当发送时指定了partition就使用该partition。即kafka生产者发送的消息ProducerRecord(String topic, Integer partition, K key, V value)指定了发送到哪个具体的分区。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值