概述
怎么确保消息 100% 不丢失
到这里,总结下:
生产端:
设置重试:
props.put("retries", "10");
设置
acks=all
设置回调:
producer.send(msg, new CallBack(){...});
Broker:
内存:使用带蓄电池后备电源的缓存
cache
。Kafka
版本0.11.x
以上:支持Epoch
机制。replication.factor >= 3
: 副本数至少有 3 个。min.insync.replicas > 1
: 代表消息至少写入 2个副本才算发送成功。前提需要acks=-1
。unclean.leader.election.enable=false
: 防止不在ISR
中的Follower
被选举为Leader
。
消费端
客户端版本升级至
0.10.2
以上版本。取消自动提交
auto.commit = false
,改为手动ack
。尽量提高客户端的消费速度,消费逻辑另起线程进行处理。
最后
以上就是每日一库为你收集整理的怎么确保消息 100% 不丢失的全部内容,希望文章能够帮你解决怎么确保消息 100% 不丢失所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复