当前位置: 首页 > news >正文

大数据课程I3——Kafka的消息流与索引机制

文章作者邮箱:yugongshiye@sina.cn              地址:广东惠州

 ▲ 本章节目的

⚪ 掌握Kafka的消息流处理;

⚪ 掌握Kafka的索引机制;

⚪ 掌握Kafka的消息系统语义;

一、Kafka消息流处理

1. Producer 写入消息

 流程说明:

1. producer 要向Kafka生产消息,需要先通过 zookeeper 的 "/brokers/.../state" 节点找到该 partition 的 副本leader的位置信息。
2. producer 将消息发送给该 leader。
3. leader 收到消息后,将消息写入到分区目录下的本地 log 文件中。
4. followers 从 leader pull 同步消息,将消息写入到分区目录下的 log 中。如果同步成功(将消息写入log文件成功),则向 leader 返回 ACK(确认机制)。

细节补充:

Kafka引入了一个ISR机制(概念),在Follower和Leader数据同步的过程中,

比如:

①副本-Follower

②副本-Leader

③副本-Follower

在数据同步过程中,①②同步,③出故障没有跟上。

此时①②是同一组ISR成员,③不是。

如果后续Leader挂掉了,则Kafka会从Leader的ISR组中随机选择一个Follower成为Leader。

Kafka底层有一个同步超时的时间(10s),即一个Follower在超时时间内没有反馈ACK,则人为同步失败。

由写入流程可知ISR里面的所有replica都跟上了Leader,只有ISR里面的成员才能选为Leader。对于 f+1 个replica,一个partition可以在容忍 f 个replica失效的情况下保证消息步丢失。

比如:一个分区由5个副本,挂掉4个,剩下一个副本,依然可以工作。

注意:Kafka的选举不同于zookeeper,用的不是过半选举。

5. leader 收到所有 ISR 中的 repli

http://www.lryc.cn/news/129257.html

相关文章:

  • LVGL学习笔记 28 - 键盘keyboard
  • 【Microsoft 支持】【数据库-MySql】当您尝试从大于 5000 的 TCP 端口连接时收到错误 WSAENOBUFS (10055)
  • 【学会动态规划】最长湍流子数组(23)
  • 【网络编程·网络层】IP协议
  • HTML详解连载(7)
  • 一文打通redis中的String类型
  • 优测云服务平台|【压力测试功能升级】轻松完成压测任务
  • UseEffect中使用setState更新后获取的值为何依然是更新前
  • 去掉鼠标系列之一: 语雀快捷键使用指南
  • 【Linux】Reactor模式
  • 【LeetCode 算法】Merge Two Binary Trees 合并二叉树
  • 系统架构设计师---2017年下午试题1分析与解答(试题五)
  • el-table实现静态和动态合并单元格 以及内容显示的问题
  • STM32F40X系列FSMC8路驱动LCD显示屏(LY-TFT30-39P-1509 芯片hx8352)
  • 小象课堂在线授课教育系统
  • Android 电池容量获取
  • 无涯教程-Perl - tell函数
  • 【论文综述】Transformer 综述
  • 博客摘录「 佛祖保佑,永无bug——springboot启动图案的修改方法」2023年6月8日
  • 【JavaEE进阶】SpringBoot 日志
  • conda - 调研介绍
  • keepalived集群
  • CentOS系统环境搭建(八)——CentOS7开机自动执行脚本(以MySQL为例)
  • re学习(31)BUUCTF-xx(多层加密)
  • HDFS的小文件影响及解决办法
  • 【前端】husky 的使用
  • Spring系列篇 -- Bean的生命周期
  • 分类预测 | MATLAB实现BO-BiGRU贝叶斯优化双向门控循环单元多输入分类预测
  • Linux权限系列--给普通用户添加某个命令的sudo权限
  • 11-数据结构-栈和队列的应用(C语言)