Kafka有两个很重要的配置参数,acks
与min.insync.replicas
.其中acks
是producer的配置参数,min.insync.replicas
是Broker端的配置参数,这两个参数对于生产者不丢失数据起到了很大的作用.接下来,本文会以图示的方式讲解这两个参数的含义和使用方式。通过本文,你可以了解到:
- Kafka的分区副本
- 什么是同步副本(In-sync replicas)
- 什么是acks确认机制
- 什么是最小同步副本
- ack=all与最小同步副本是如何发挥作用的
分区副本
Kafka的topic是可以分区的,并且可以为分区配置多个副本,改配置可以通过replication.factor
参数实现. Kafka中的分区副本包括两种类型:领导者副本(Leader Replica)和追随者副本(Follower Replica),每个分区在创建时都要选举一个副本作为领导者副本,其余的副本自动变为追随者副本. 在 Kafka 中,追随者副本是不对外提供服务的,也就是说,任何一个追随者副本都不能响应消费者和生产者的读写请求. 所有的请求都必须由领导者副本来处理. 换句话说,所有的读写请求都必须发往领导者副本所在的 Broker,由该 Broker 负责处理. 追随者副本不处理客户端请求,它唯一的任务就是从领导者副本异步拉