kafka存储机制
来源:互联网 发布:element linux 编辑:程序博客网 时间:2024/06/06 10:01
副本机制(replication)
Kafka 通过多副本机制实现高可用,确保当Kafka集群中某一个Broker宕机的情况下,仍然可用。而 Kafka 的复制算法保证,如果Leader发生故障或者宕机,一个新的Leader会被重新选举出来,并对外提供服务,供客户端写入消息。Kafka 在同步的副本列表中选举一个副本为Leader。在Topic中,每个分区有一个预写式日志文件,每个分区都由一系列有序,不可变的消息组成,这些消息被连续的追加到分区中,分区中的每个消息都包含一个连续的序列号,即:offset。它用于确定在分区中的唯一位置
竞选机制
在Kafka中,假如每个Topic的分区有N个副本,由于Kafka通过多副本机制实现故障自动转移,这里需要说明的是,当KafkaController出现故障,进而不能继续管理集群,则那些KafkaController Follower开始竞选新的Leader,而启动的过程则是在KafkaController的startup方法中完成的,然后启动ZookeeperLeaderElector,在创建临时节点,进行session检查,更新leaderId等操作完成后,会调用故障转移函数onBecomingLeader,也就是KafkaController中的onControllerFailover方法,正因为有这样的机制存在,所示当Kafka集群中的某个Broker宕机后,仍然保证服务是可用的
在Kafka中发生复制操作时,确保分区的预写式日志有序的写到其他节点,在N个复制因子中,其中一个复制因子角色为Leader,那么其他复制因子的角色则为Follower,Leader处理分区的所有读写请求,同时,Follower会被动的定期去复制Leader上的数据。以上分析可以总结为以下几点,如下所示:
Leader负责处理分区的所有读写请求。
Follower会复制Leader上数据。(实现高可用)
Kafka 的故障自动转移确保服务的高可用。
总结
1. 第一步,调用startup方法选出leader,或者leader宕机了,follower竞选leader
2. 第二步,在zookeeper中更新leaderId,
3. 第三步,leader负责处理分区的数据的读写,
4. 第四步,follower负责从leader复制数据,(这一步是实现高可用的关键)
存储机制
对于消息对应的性能评估,其文件存储机制设计是衡量的关键指标之一,在分析Kafka的存储机制之前,我们先了解Kafka的一些概念:
1.·Broker:Kafka消息中间件节点,一个节点代表一个Broker,多个Broker可以组建成Kafka Brokers,即 Kafka集群,
2.Topic:消息存储主题,即可以理解为业务数据名,Kafka Brokers能够同时负责多个Topic的处理。
3.Partition:针对于Topic来说的,一个Topic上可以有多个Partition,每个Partition上的数据是有序的。
4.Segment:对于Partition更小粒度,一个Partition由多个Segment组成。
5.Offset:每个Partition上都由一系列有序的,不可变的消息组成,这些消息被连续追加到Partition中。而在其中有一个连续的序列号offset,用于标识消息的唯一性。
总结:
- 通过topic存储分区,
- 每一个topic下面有多个partition,每一个patition对应一个文件
- Segment文件由Index File和Data File组成,文件是一一对应的,后缀为 .index 表示索引文件, .log 表示数据文件
- 通过offset查找消息
kafka的offset storage
一般我们就接受了默认的存储(即:存在 ZK 中)。在新版 Kafka 以及之后的版本,Kafka 消费的offset都会默认存放在 Kafka 集群中的一个叫 __consumer_offsets 的topic中。kafka会将最新的offset放入内存中,消费者可以通过获取内存中的offset信息来获取最新值,我们可以通过一个map集合来获取的这个字段,然后通过一个监听线程来来更新offset,然后可以通过获取到这个字段,可视化的显示资格这个消费情况
代码解析
- Kafka文件存储机制
- kafka存储机制
- Kafka文件存储机制
- Kafka文件存储机制
- kafka存储机制
- kafka存储机制
- kafka存储机制
- Kafka文件的存储机制
- Kafka文件的存储机制
- kafka offset 新存储机制
- kafka 节点物理存储机制
- Kafka的文件存储机制
- Kafka文件存储机制那些事
- Kafka文件存储机制那些事
- Kafka文件存储机制那些事
- Kafka文件存储机制那些事
- Kafka文件存储机制那些事
- Kafka文件存储机制那些事
- SpringMVC/SpringBoot使用easypoi实现Excel文件导入导出功能实现
- 恶意代码分析实战 课后题 Lab12-01
- 说一说gc
- 《奔跑吧Linux内核》之处理器体系结构
- 机器学习算法总结--线性回归和逻辑回归
- kafka存储机制
- AIX6 sudo权限问题
- HDU6098(做了一个小时的水题)
- 代码干货 | HTML表单控件绑定
- 54.螺旋读取数组
- 单向链表和双向链表
- iOS-ReactiveObjC 的基本使用(二)
- Verilog中同步复位和异步复位比较
- Java:TreeSet定制排序后无法被对象输出流写入到文件