我是靠谱客的博主 每日一库,最近开发中收集的这篇文章主要介绍怎么确保消息 100% 不丢失,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

怎么确保消息 100% 不丢失

到这里,总结下:

  1. 生产端:

  • 设置重试:props.put("retries", "10");

  • 设置 acks=all

  • 设置回调:producer.send(msg, new CallBack(){...});

  1. 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

  1. 消费端

  • 客户端版本升级至 0.10.2 以上版本。

  • 取消自动提交 auto.commit = false,改为手动 ack

  • 尽量提高客户端的消费速度,消费逻辑另起线程进行处理。


最后

以上就是每日一库为你收集整理的怎么确保消息 100% 不丢失的全部内容,希望文章能够帮你解决怎么确保消息 100% 不丢失所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(354)

评论列表共有 0 条评论

立即
投稿
返回
顶部