目录
- 一、生产经验数据有序
- 二、生产经验数据乱序
- 2.1、kafka1.x版本之前保证数据单分区有序的条件
- 2.2、kafka1.x版本及以后保证数据单分区有序的条件
- 2.3、kafka1.x版本及以后开启幂等性数据单分区有序的原因
一、生产经验数据有序
- 单分区内,数据有序。如下图partion0、partion1、partion2分区内,各自分区内的数据有序。
二、生产经验数据乱序
2.1、kafka1.x版本之前保证数据单分区有序的条件
-
kafka在1.x版本之前保证数据单分区有序,条件如下:
max.in.flight.requests.per.connection=1(不需要考虑是否开启幂等性)。
2.2、kafka1.x版本及以后保证数据单分区有序的条件
-
未开启幂等性
max.in.flight.requests.per.connection 需要设置为1。
-
开启幂等性
max.in.flight.requests.per.connection 需要设置小于等于5。
2.3、kafka1.x版本及以后开启幂等性数据单分区有序的原因
- 因为在kafka1.x及以后版本启用幂等后,kafka服务端会缓存producer发来的最近5个request的元数据,故无论如何,都可以保证最近5个request的数据都是有序的。