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

通过分布式系统的视角看Kafka

希望这篇文章能对我有意义
2025年8月16日
以一个分布式系统的视角看kafka,kafka就不会只是一个生产者消费者模型那么简单。
以下都是一些

服务发现,服务注册

kafka中会有KRaft 元数据管理(取代 ZooKeeper)进行服务发现与注册
用于管理分区状态

服务调用

服务调用就是consumer和producer。

远程服务调用

该分布式内交互方式是发送数据以及消费数据,方式就是Http

负载均衡

操作的中心就是Partition
一个partition对应一个consumer,一组consumer共用一个offset,这个offset存储在partition内。
一个合理的负载均衡策略可以保证开发的稳定进行,常见的kafka partition负载均衡策略(分区策略)是RangeAssignor 策略(时间分区),RoundRobinAssignor 策略(轮询分区),StickyAssignor 策略(原有的分配结果不变,新增的partition会分给原有consumer)

容错机制

对于kafka,容错就是ISR机制(broker容错),生产者ACK机制,消费者的心跳检测与offset机制

常见的容错机制如下:

容错策略核心思想适用场景典型实现系统
Failover主故障切换备份,支持重试读操作、幂等服务HDFS、Dubbo110
Failfast失败立即报错,不重试非幂等写操作(支付)Dubbo、Java集合810
Failsafe忽略异常,保主流程日志、监控等旁路逻辑Dubbo710
Failback异步存储+定时重试最终一致性(库存同步)Dubbo、消息队列37
Forking并行调用,任一成功即返回高可用读操作Dubbo710
Broadcast广播所有节点,全部成功才成功配置同步、缓存更新Dubbo、Cassandra37

一致性算法

数据一致性

一致性算法保证分布式系统下数据不被丢失,重心就在于broker
如果Leader节点挂掉,就会触发Controller 选举(基于 Raft 协议),过于落后的Follower不会再参与到选举中

消费一致性

HW(高水位线)机制:标识已提交消息的偏移量,消费者仅能读取HW以下数据,避免脏读
Leader Epoch:防止脑裂场景下数据不一致,新Leader基于Epoch号截断旧数据

日志、链路调用、指标监控

日志:
kafka的数据就是日志,

链路追踪:
kafka自身不支持链路追踪能力

端到端延迟分析:结合外部工具(如Prometheus+Grafana)监控生产→Broker→消费全链路时延38。

监控:
Kafka 通过 JMX(Java Management Extensions) 暴露丰富运行时指标,是监控体系的核心基础:

推荐阅读

  1. Kafka stream最全方法及用法说明(附带案例)
  2. Kafka分区分配策略:深入剖析与实战指南
  3. Kafka消息路由分區機制深度解析:架構設計與實現原理
  4. 从分布式AKF原则的角度看Kafka的架构设计
  5. 分布式系统架构3:服务容错
  6. 学习 Kafka 入门知识看这一篇就够了!(万字长文)
  7. 基于两级Flume+Kafka的日志采集架构
http://www.xdnf.cn/news/18374.html

相关文章:

  • python黑盒包装
  • Matplotlib数据可视化实战:Matplotlib图表注释与美化入门
  • 抓取手机游戏相关数据
  • LWIP流程全解
  • java实现url 生成二维码, 包括可叠加 logo、改变颜色、设置背景颜色、背景图等功能,完整代码示例
  • 【运维进阶】Ansible 角色管理
  • 记一次 .NET 某自动化智能制造软件 卡死分析
  • 流程进阶——解读 49页 2023 IBM流程管理与变革赋能【附全文阅读】
  • Redis缓存加速测试数据交互:从前缀键清理到前沿性能革命
  • 微服务-07.微服务拆分-微服务项目结构说明
  • 236. 二叉树的最近公共祖先
  • 从密度到聚类:DBSCAN算法的第一性原理解析
  • 100202Title和Input组件_编辑器-react-仿低代码平台项目
  • git 创用操作
  • 【集合框架LinkedList底层添加元素机制】
  • Python网络爬虫全栈教程 – 从基础到实战
  • 网络编程day4
  • 电商平台接口自动化框架实践
  • Codeforces 斐波那契立方体
  • 寻找旋转排序数组中的最小值
  • 企业知识管理革命:RAG系统在大型组织中的落地实践
  • RNN如何将文本压缩为256维向量
  • Voice Agents:下一代语音交互智能体的架构革命与产业落地
  • 缓存-变更事件捕捉、更新策略、本地缓存和热key问题
  • 20.2 QLoRA微调全局参数实战:高点击率配置模板+显存节省50%技巧
  • 【论文阅读】DETR3D: 3D Object Detection from Multi-view Images via 3D-to-2D Queries
  • 《WASM驱动本地PDF与Excel预览组件的深度实践》
  • 使用 Ansys Discovery 探索外部空气动力学
  • 决策树算法详解
  • Esp32基础(⑨RGB LED)