概念
基于发布/订阅模式的分布式消息队列
分布式 基于发布和订阅模式的消息队列
本身最新定位:分布式流式事件处理平台
除了缓存存储数据 还支持了数据流式计算能力 不用
-
发布/订阅模式
多个的生产者发布不同的数据到 topic 队列上(主题队列)
不同的消费者,订阅自己所需要的topic(主题)
使用消息队列的好处
解耦合
缓冲, 流量消峰
异步处理
日志处理:实时计算场景中将数据缓存到消息队列中,解决大量日志传输的问题。-
集群架构
zk集群 kafka集群
主备架构 broker节点 broker-controller主节点
zk 集群存放 kafka集群上所有元数据
主节点是由zk选举得到的 leader副本是由 controller 主节点选举得到的 组件
kafka集群 每个节点叫做broker 主角色叫做controller broker
producer 生产者
consumer group 消费者组
consumer消费者topic如何分布式存储
topic 主题 数据的分类
partition分区 主题是分布式存储的 放在不同的broker上
replication副本
leader副本 对外读写的 生产者消费者直接打交道
follower副本 同步leader副本的数据 时刻准备成为leader
另外kafka的数据是存放在页缓存和linu磁盘当中,每个分区的offset是唯一的
磁盘当中每个分区以segment片段存在
xxx.log
xxx.index offset的稀疏索引
xxx.time space 时间戳索引