目录
百战程序员,全站22050+开发课程+文档 ,学习精选优质好课快人一步!观看视频 快捷键ALT+N

大数据全系列 教程

1869个小节阅读:468.1k

收藏
全部开发者教程

408考研

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

Python3.x版本,未来主流的版本

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

算法,程序员自我提升必经之路

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(197)
赞(0)

生产者_消息无丢失

acks:0 生产者发送过来的数据,不需要等Leader数据持久化就应答完成。数据可靠性最低;丢失数据概率较高。数据就丢失情景:Leader未持久化Down掉了。使用最少。

acks:1 生产者发送过来的数据,Leader收到持久化后应答完成。数据可靠性中等,丢失数据概率中等。丢失数据情景:Leader持久化后,所有的Follower还没有同步数据时,leader挂了。用于传输普通日志。

acks:-1或all 生产者发送过来的数据,Leader和ISR队列里面的所有节点都持久化数据后才应答。数据可靠性最高,不会丢失数据。传输重要数据,比如和钱相关的数据。

思考:在acks=-1或all的情况下,Leader接收到数据并持久化后,所有Follower开始同步Leader刚刚持久化的数据,但是有一个Follower因故障迟迟不能进行数据同步,该问题应该怎么解决?

解决方案

Leader维护了一个动态的in-sync replica set(ISR),意为和Leader保持同步的Follower+Leader集合(leader:0,isr:0,1,2)。如果Follower长时间未向Leader发送通信请求或同步数据,则该Follower将被踢出ISR。该时间阈值由replica.lag.time.max.ms参数设定,默认30000ms。例如1超时,(leader:0, isr:0,2)。这样就不用等长期联系不上或者已经故障的节点。

数据完全可靠性条件:

  1. ACK级别设置为-1
  2. 分区副本>=2
  3. ISR应答的最小副本数>=2 (最小副本数有min.insync.replicas设置,默认为1)

生成者中配置响应级别:

实时效果反馈

1. 关于Kafka生产者应答级别的描述,正确的是:

A acks:0 生产者发送过来的数据,不需要等Leader数据持久化就应答完成。数据可靠性最低;丢失数据概率较高。数据就丢失情景:Leader未持久化Down掉了。使用最少。

B acks:1 生产者发送过来的数据,Leader收到持久化后应答完成。数据可靠性中等,丢失数据概率中等。丢失数据情景:Leader持久化后,所有的Follower还没有同步数据时,leader挂了。用于传输普通日志。

C acks:-1或all 生产者发送过来的数据,Leader和ISR队列里面的所有节点都持久化数据后才应答。数据可靠性最高,不会丢失数据。传输重要数据,比如和钱相关的数据。

D 以上三个选项都正确。

2. 关于Kafka生产者数据完全可靠性条件的描述,错误的是:

A ACK级别设置为-1。

B 分区副本>=2。

C 重试次数 retries>=2。

D ISR应答的最小副本数>=2 。

答案:

1=>D

2=>C

 

北京市昌平区回龙观镇南店村综合商业楼2楼226室

©2014-2023 百战卓越(北京)科技有限公司 All Rights Reserved.

京ICP备14032124号-2