怎么确保消息 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% 不丢失的全部内容,更多相关怎么确保消息内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复