赞
踩
Kafka 集群包含一个或多个服务器
,服务器节点称为broker每条发布到Kafka集群的消息都有一个类别
,这个类别被称为Topic首先创建主题,然后选择 Partition和Replication
分开存储
为了实现扩展性,一个非常大的Topic可以分布到多个Broker上,一个Topic可以分为多个Partition,每个Partition是一个有序的队列(分区有序,不能保证全局有序)
直接
使用hash
选出一个 partition轮询
选出一个 Partition1、topic中的数据分割为一个或多个partition,每个Partition是一个有序的队列(分区有序,不能保证全局有序
)
2、每个topic至少有一个partition,当生产者产生数据的时候,根据分配策略,选择分区,然后将消息追加到指定的分区的末尾(队列)
3、每条消息都会有一个自增的编号
4、每个partition中的数据使用多个segment文件存储
每个分区多个副本的主角色,生产者发送数据的对象,以及消费者消费数据的对象都是Leader。
有且仅有一个
作为Leader,Leader是当前负责数据的读写
的partition。每个分区多个副本的从角色,实时的从Leader中同步数据,保持和Leader数据的同步,Leader发生故障的时候,某个Follower会成为新的Leader。
Follower与Leader保持数据同步
leader
会把这个follower从“in sync replicas”(ISR)列表中删除,重新创建一个Follower。
副本Replication,为保证集群中某个节点发生故障
副本机制
,每一个分区都会拥有副本,为保证集群中某个节点发生故障,节点上的Partition数据的安全
Partition
的功能是为了数据的读写Replication
是为了数据的备份,没有读取的功能一个Leader
和多个Follower
1、数据会存放到 topic 的 partation 中,但会有数据丢失的风险
2、需要对分区的数据进行备份(备份多少取决于你对数据的重视程度)
3、我们将分区的分为Leader(1)和Follower(N)
Leader
负责写入和读取数据Follower
只负责备份4、备份数设置为N,表示主+备=N
(参考HDFS)
消息生产者,向Kafka中发布消息的角色
消息消费者,即从Kafka中拉取消息消费的客户端
记录当前 Topic 消息消费的进度,就是 Offset 偏移量
可以唯一的标识一条消息
一个消息只能被一个组消费一次
这个进度就是 Offset 偏移量
消息被消费之后,并不被马上删除
,这样多个业务就可以重复使用kafka的消息消息最终还是会被删除的
,默认生命周期为1周(7*24小时)存储 Kafka 的元数据信息
我是底线。。。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。