白泽z
Kafka架构与高可用概述
关注作者
前往小程序,Get
更优
阅读体验!
立即前往
腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
白泽z
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
社区首页
>
专栏
>
Kafka架构与高可用概述
Kafka架构与高可用概述
白泽z
关注
发布于 2022-08-18 14:32:11
420
0
发布于 2022-08-18 14:32:11
举报
文章被收录于专栏:
Go与云原生开发
一、消息队列概述
消息队列
应用场景
• MQ消息通道:异步解耦、削峰填谷、发布订阅、高可用
• EventBridge数据总线
• 事件目标:消费事件消息
• 事件集:存储接收到的事件消息,根据事件规则将消息路由到事件目标
• 事件源:将云服务、自定义应用、SaaS应用等应用程序产生的事件消息发布到事件集
• Data Platfrom 数据流平台
• 提供批/流数据处理能力
• 各类组件提供各类Connect
• 提供Streaming/Function能力
• 根据数据schema灵活的进行数据预处理能力
二、Kafka详解
Kafka架构介绍
Zookeeper
• 选举机制:Paxos机制
• 提供一致性:写入强一致性、读取会话一致性
• 提供可用性:一半以上节点存活即可读写
• 提供功能:watch机制、持久/临时节点能力
Borker
• 若干个Broker节点组成Kafka集群
• Broker作为消息的接受模块,使用React网络模型进行消息数据的接受
• Broker作为消息的持久化模块,进行消息的副本复制以及持久化
• Broker作为高可用模块,通过副本间的Failover进行高可用保证
Controller选举
• Broker启动会尝试去zk中注册controller节点
• 注册上controller节点的broker即为controller
• 其余broker会watch controller节点,节点出现异常进行重新注册
Controller的作用
• Broker重启/宕机时,负责副本的Failover操作
• Topic创建/删除时,负责Topic meta信息广播
• 集群扩缩容时,进行状态控制
• Partition/Replica 状态机维护
Coordinator
• 负责topic-partition与consumer的负载均衡
• 根据不同的场景提供不同的分配策略
Kafka高可用
kafka副本ISR机制
• AR:已经分配的所有副本
• OSR:很久没有同步数据的副本
• ISR:一直在同步数据的副本
kafka写入Ack机制
• Ack=1:leader副本写入成功,priducer即认为写成功
• Ack=0:producer发送后即为成功
• Ack=-1:ISR中所有的副本都成功,producer才认为写成功
kafka副本同步
• LEO:日志最末尾的数据
• HW:ISR中最小的LEO作为HW,HW的消息为Consumer可见的消息
kafka副本选举
• Clean选举:优先选取lsr中的副本为leader,如果lsr中无可用副本,则partition不可用
• Unclean选举:优先选取lsr中的副本为leader,如果lsr中无可用副本,则选择其他存活副本
本文参与
腾讯云自媒体同步曝光计划
,分享自微信公众号。
原始发表:2022-08-09,如有侵权请联系
cloudcommunity@tencent.com
删除
kafka
消息队列 CMQ 版
本文分享自
程序员白泽
微信公众号,
前往查看
如有侵权,请联系
cloudcommunity@tencent.com
删除。
本文参与
腾讯云自媒体同步曝光计划
,欢迎热爱写作的你一起参与!
kafka
消息队列 CMQ 版
评论
登录
后参与评论
0 条评论
热度
最新
推荐阅读
LV.
文章
0
获赞
0
目录
一、消息队列概述
消息队列
应用场景
二、Kafka详解
Kafka架构介绍
Zookeeper
Borker
Controller选举
Controller的作用
Coordinator
Kafka高可用
kafka副本ISR机制
kafka写入Ack机制
kafka副本同步
kafka副本选举
相关产品与服务
消息队列 CMQ 版
消息队列 CMQ 版(TDMQ for CMQ,简称 TDMQ CMQ 版)是一款分布式高可用的消息队列服务,它能够提供可靠的,基于消息的异步通信机制,能够将分布式部署的不同应用(或同一应用的不同组件)中的信息传递,存储在可靠有效的 CMQ 队列中,防止消息丢失。TDMQ CMQ 版支持多进程同时读写,收发互不干扰,无需各应用或组件始终处于运行状态。
产品介绍
产品文档
精选特惠 用云无忧
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档
0
0
0
推荐