没有一个中间件能够做到百分之百的完全可靠,可靠性更多的还是基于几个9的衡量指标,比如4个9、5个9. 软件系统的可靠性只能够无限去接近100%,但不可能达到100%。所以kafka如何是实现最大可能的可靠性呢?

分区副本, 你可以创建更多的分区来提升可靠性,但是分区数过多也会带来性能上的开销,一般来说,3个副本就能满足对大部分场景的可靠性要求

acks,生产者发送消息的可靠性,也就是我要保证我这个消息一定是到了broker并且完成了多副本的持久化,但这种要求也同样会带来性能上的开销。它有几个可选项

1 ,生产者把消息发送到leader副本,leader副本在成功写入到本地日志之后就告诉生产者消息提交成功,但是如果isr集合中的follower副本还没来得及同步leader副本的消息,leader挂了,就会造成消息丢失

-1 ,消息不仅仅写入到leader副本,并且被ISR集合中所有副本同步完成之后才告诉生产者已经提交成功,这个时候即使leader副本挂了也不会造成数据丢失。

0:表示producer不需要等待broker的消息确认。这个选项时延最小但同时风险最大(因为当server宕机时,数据将会丢失)。

保障消息到了broker之后,消费者也需要有一定的保证,因为消费者也可能出现某些问题导致消息没有消费到

enable.auto.commit默认为true,也就是自动提交offset,自动提交是批量执行的,有一个时间窗口,这种方式会带来重复提交或者消息丢失的问题,所以对于高可靠性要求的程序,要使用手动提交。 对于高可靠要求的应用来说,宁愿重复消费也不应该因为消费异常而导致消息丢失

Kafka消息的可靠性相关推荐

  1. kafka架构与原理 ,消息的可靠性与一致性幂等性,数据存储、zookeeper、使用场景

    一.Kafka概述 Kafka作为一个商业级消息中间件 ,发布和订阅记录流,它类似于一个消息队列 先了解下Kafka的基本原理,然后通过对kakfa的存储机制.复制原理.同步原理.可靠性和持久性保证等 ...

  2. Kafka 消息可靠性

    在 Kafka 工作机制 一文提及了 Kafka 消息的不可靠性.本文就 Kafka 消息的三种不可靠性(重复.丢失.乱序),分析它们出现的内部原因和解决办法. 作者:王克锋 出处:https://k ...

  3. kudu接受kafka消息_Kafka入门详解

    1.1 什么是kafka? Kafka最初由Linkedin公司开发,是一个分布式.支持分区的(partition).多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的 ...

  4. 消息队列面试 - 如何保证消息的可靠性传输?

    消息队列面试 - 如何保证消息的可靠性传输? 面试题 如何保证消息的可靠性传输?或者说,如何处理消息丢失的问题? 面试官心理分析 这个是肯定的,用 MQ 有个基本原则,就是数据不能多一条,也不能少一条 ...

  5. kafka消息服务的producer、broker、consumer的配置

    2019独角兽企业重金招聘Python工程师标准>>> server.properties配置: server.properties中所有配置参数说明(解释)如下列表: 参数 说明( ...

  6. 为什么要使用kafka消息队列

    1.为什么要使用 kafka?为什么要使用消息队列? 缓冲和削峰:上游数据时有突发流量,下游可能扛不住,或者下游没有足够多的机器来保证冗余,kafka在中间可以起到一个缓冲的作用,把消息暂存在kafk ...

  7. 19 kafka消息队列

    文章目录 19 kafka消息队列 一.kafka介绍 1.消息队列基本介绍 2.常用的消息队列介绍 3.消息队列的应用场景 4.消息队列的两种模式 5.kafka的基本介绍 6.kafka的架构介绍 ...

  8. 10、Kafka 消息订阅系统

    1.Kafka 简介 Kafka 是一个高吞吐.分布式.基于发布订阅的消息系统,利用 Kafka 技术可在廉价 PCServer 上搭建起大规模消息系统. Kafka 和其他组件比较,具有消息持久化. ...

  9. 微服务 消息中间件kafka消息丢失问题

    微服务 消息中间件kafka消息丢失问题 1. kafka消息丢失概述 1.1 kafka概述 1.2 kafka架构 1.3 kafka问题 2. kafka消息传递语义 3. kafka消息丢失问 ...

最新文章

  1. linux线程的实现【转】
  2. Thymeleaf 基本用法总结
  3. 图解使用CygWin进行Linux操作和编程
  4. Spring jdbc的搭建
  5. js进阶 9-14 js如何实现下拉列表多选移除
  6. Telephone Number
  7. 同方自主可控系统服务器,自主可控 同方超强TR1210服务器!
  8. 响应式开发中合理选定CSS媒体查询分割点
  9. python 欠采样_数据科学家需要了解的 5 种采样方法
  10. 基于 .Net5.0 的快速开发框架,YuebonCore1.0.3 版已发布
  11. Qt4_内置的窗口部件类和对话框类
  12. 超强数据恢复软件【含注册码】
  13. 工作后的5种放松方法
  14. python相关性分析模型,相关性分析原理及Python实战
  15. Allegro中 板框 尺寸标注
  16. Linux系列-快速搞定CentOS7.0网络配置
  17. Python自动化测试系列[v1.0.0][Win32模拟键盘]
  18. Java将Unicode转换成中文
  19. java unicode gbk_java unicode转GBK
  20. Linux 系统管理没有 netstat ,不惆怅! 拥抱 ss ,事半功倍

热门文章

  1. 字符串string类使用总结
  2. TFS突然链接不上(TF30063),并且MSN也连接不上,报主要端口的错误!
  3. Django的文件下载
  4. Windows 之 删除文件出现“该项目不在请确认该项目的位置”
  5. SpringBoot使用Thymeleaf模板
  6. 基于Delphi的接口编程入门
  7. JavaScript 动态创建标记
  8. 降低能耗 企业级闪存进入数据中心领域
  9. 学Excel函数公式,怎能不会这个组合套路?
  10. R-CNN-减少region proposals的数量:NMS(非极大值抑制)