Kafka消息的可靠性
没有一个中间件能够做到百分之百的完全可靠,可靠性更多的还是基于几个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消息的可靠性相关推荐
- kafka架构与原理 ,消息的可靠性与一致性幂等性,数据存储、zookeeper、使用场景
一.Kafka概述 Kafka作为一个商业级消息中间件 ,发布和订阅记录流,它类似于一个消息队列 先了解下Kafka的基本原理,然后通过对kakfa的存储机制.复制原理.同步原理.可靠性和持久性保证等 ...
- Kafka 消息可靠性
在 Kafka 工作机制 一文提及了 Kafka 消息的不可靠性.本文就 Kafka 消息的三种不可靠性(重复.丢失.乱序),分析它们出现的内部原因和解决办法. 作者:王克锋 出处:https://k ...
- kudu接受kafka消息_Kafka入门详解
1.1 什么是kafka? Kafka最初由Linkedin公司开发,是一个分布式.支持分区的(partition).多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的 ...
- 消息队列面试 - 如何保证消息的可靠性传输?
消息队列面试 - 如何保证消息的可靠性传输? 面试题 如何保证消息的可靠性传输?或者说,如何处理消息丢失的问题? 面试官心理分析 这个是肯定的,用 MQ 有个基本原则,就是数据不能多一条,也不能少一条 ...
- kafka消息服务的producer、broker、consumer的配置
2019独角兽企业重金招聘Python工程师标准>>> server.properties配置: server.properties中所有配置参数说明(解释)如下列表: 参数 说明( ...
- 为什么要使用kafka消息队列
1.为什么要使用 kafka?为什么要使用消息队列? 缓冲和削峰:上游数据时有突发流量,下游可能扛不住,或者下游没有足够多的机器来保证冗余,kafka在中间可以起到一个缓冲的作用,把消息暂存在kafk ...
- 19 kafka消息队列
文章目录 19 kafka消息队列 一.kafka介绍 1.消息队列基本介绍 2.常用的消息队列介绍 3.消息队列的应用场景 4.消息队列的两种模式 5.kafka的基本介绍 6.kafka的架构介绍 ...
- 10、Kafka 消息订阅系统
1.Kafka 简介 Kafka 是一个高吞吐.分布式.基于发布订阅的消息系统,利用 Kafka 技术可在廉价 PCServer 上搭建起大规模消息系统. Kafka 和其他组件比较,具有消息持久化. ...
- 微服务 消息中间件kafka消息丢失问题
微服务 消息中间件kafka消息丢失问题 1. kafka消息丢失概述 1.1 kafka概述 1.2 kafka架构 1.3 kafka问题 2. kafka消息传递语义 3. kafka消息丢失问 ...
最新文章
- linux线程的实现【转】
- Thymeleaf 基本用法总结
- 图解使用CygWin进行Linux操作和编程
- Spring jdbc的搭建
- js进阶 9-14 js如何实现下拉列表多选移除
- Telephone Number
- 同方自主可控系统服务器,自主可控 同方超强TR1210服务器!
- 响应式开发中合理选定CSS媒体查询分割点
- python 欠采样_数据科学家需要了解的 5 种采样方法
- 基于 .Net5.0 的快速开发框架,YuebonCore1.0.3 版已发布
- Qt4_内置的窗口部件类和对话框类
- 超强数据恢复软件【含注册码】
- 工作后的5种放松方法
- python相关性分析模型,相关性分析原理及Python实战
- Allegro中 板框 尺寸标注
- Linux系列-快速搞定CentOS7.0网络配置
- Python自动化测试系列[v1.0.0][Win32模拟键盘]
- Java将Unicode转换成中文
- java unicode gbk_java unicode转GBK
- Linux 系统管理没有 netstat ,不惆怅! 拥抱 ss ,事半功倍