当前位置: 代码迷 >> 综合 >> Kafka 保证分区有序
  详细解决方案

Kafka 保证分区有序

热度:147   发布时间:2023-09-13 04:32:22.0

Kafka能做到全局有序吗?

Kafka只能保证分区有序,
如果只有一个分区,
那也是变向的全局有序

Kafka如何保证分区有序

  • 通过配置 max.in.flight.requests.per.connection = 1
    这个配置是 生产者 往 服务度 发送数据的请求数,
    配置为1,则一次只能发送1个请求,
    如果失败继续重试,知道成功,
    才会进行下一个请求的发送,
    这样就保证了消息的有序性,
    但是相对性能就大大降低了。

  • 通过生产者幂等特性
    幂等的保证是需要给每条消息加一个 Seqnum的,
    也就是每个消息都有自己的序号,
    服务端对于比当前最新的Seqnum大于1的消息,
    是会拒绝的,
    所以也可以保证消息的顺序性