Kafka 可靠性和一致性

1. 可靠性

为了保证数据的可靠性,我们最少需要配置一下几个参数:

1. producer 级别:
   · acks=all(或者 request.required.acks=-1)
   · 同时发生模式为同步 producer.type=sync:Leader 在返回确认或错误响应之前,会等待所有同步副本都收到悄息
      

2. topic 级别:
   · 设置副本数 replication.factor>=3
   · min.insync.replicas>=2:可以决定在返回确认前至少有多少个副本能够收到悄息,
                             生产者会一直重试直到消息被成功提交
3. broker 级别:
   · 关闭不完全的 Leader 选举,即 unclean.leader.election.enable=false;

2. 一致性

引入 High Water Mark 机制:
只有 High Water Mark 以上的消息才支持 Consumer 读取,而 High Water Mark 取决于 ISR(in-sync replicas) 列表
里面偏移量最小的分区, 这个很类似于木桶原理。

弊端:
会导致 Broker 间的消息复制因为某些原因变慢,那么消息到达消费者的时间也会随之变长(因为我们会先等待消息复制完毕)。
延迟时间可以通过参数 replica.lag.time.max.ms 参数配置,它指定了副本在复制消息时可被允许的最大延迟时间。

参考文档:
https://www.iteblog.com/archives/2560.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值