kafka
2023-02-01 10:14:30 0 举报
kafka
作者其他创作
大纲/内容
Follower
Segment2
OSR离开同步队列
Topic主题逻辑概念
消费端offset
由Apache软件基金会开发的一个开源流处理平台,kafka是一种高吞吐量的分布式发布订阅消息系统。
生产者脏选举问题
Offset
replica1
上游生产者产生一条注册信息存放到消息中间件下游消费者需要消费消息并发送一条短信
replication备份
事务
topic
Leader
推送数据处理及时消费者处理能力不足
ACK机制
Kafka 集群包含一个或多个服务器,服务器节点称为broker。
生产者
segment 和 具体数据内容
处理上下游数据不对称问题,解决上下游消息只存一条的问题
操作指令
保证生产者发送的信息可以到达Partition
partition
ISR在同步队列
Segment0
1需要Leader返回ACK效率一般高,一般安全最少一条
index索引00000.index
replication
zookeeper
consumer 4
log数据00000.log
定义
consumer group
发布到Kafka的topic中。broker将该消息追加到segment文件中。存储到一个partition中,然后同步到Replication
HW高水位线(high)
通知下游
消费方式
ARALL Replication
数据消费的时候都是以消费者组出现的如何去分配消费者组与Topic或者消费者与Partition的关系如果消费者数量发生变化,会触发重分配策略
异步通信原理
-1需要Leader+Follower全部确认效率低,很安全最少一条
Kafka和flume区别
生产者消费者模式
生产者安全
指多接口的多次调用所产生的结果和只调用一次是一致的。(查询get有缓存)
offset偏移量唯一的标识一条消息,消息默认生命周期为一周消费者组 N:N Topic每一种组合 都会有一个Offset特殊情况下消费者组可以适当调整offset的位置。侧面也证明消费的数据不会被立马删除
消费者
replican
Kafka Brokers
消息系统原理
Ack机制; 将发送的类容保存到两个队列中存储发送(MD5加密)等待接收端返回数据,如果返回接受则继续发送,否则重另外队列取出重复发送
作用
为什么设置缓存区?
优点
p3
RoundRobin 轮询相对均衡,差值为1订阅多个主题相对数据比较混乱(一组消费者只消费单个主题的数据)
Partition1
拉取消息msg
Flume收集数据,多渠道,flume和flume之间互传Kafka进行消费,有偏移量,安全幂等性
0不需要Leader返回ACK效率高,不安全最多一条
Segment1
解决
幂等性
Range(范围)按照主题取整进行分配,取整.所有块分配相同数量在取余,前n个消费者多分配几个块块是连续的
数据单元
kafka 提供了两套 consumer API: 1. The high-level Consumer API 消费数据的高层抽象 2. The SimpleConsumer API 员更多地关注细节
选举策略
LEO
存储Kafka的元数据信息帮助进行选举
拉取根据自己的实际处理能力拉取数据需要非常频繁的去访问Topic
producer2
稀疏索引+顺序存+单个segment有序==>快速查找启动硬盘顺序写预留空间Index—10mTimeindex时间搓索引:对索引绑定时间搓,在查找时增加了一总查找的方式
producer1
Topic主题
分配策略
点对点消息传递
Server3
消费者数据安全
Broker物理结点
能保证单个分区不会重复写入数据
partition分区
Partitio3
Partition(分区)物理数据是连续的只增不删
提交方式
Kafka概念
kafka
p1
Kafka架构
具体实现
生产端offset
consumer 3
Server1
topic中的数据分割为一个或多个partition。每个partition中的数据使用多个segment文件存储。每条消息都会有一个自增的编号
Leader负责写入和读取数据当Follower挂掉、卡住或者同步太慢,leader会把这个follower从“in sync replicas”(ISR)列表中删除,重新创建一个Follower。
索引顺序读写,默认申请10M的空间
快速查找
Follower只负责备份
具体数据
发布订阅消息传递
Server2
解决幂等性无法跨Partition运作的问题,写入多个Partition要么全部成功,要么全部失败,不会出现部分成功部分失败这种情况。
缓冲区
consumer 1
Partition2
consumer 2
Sticky 0.11新增1,保存整体均匀2,当有结点宕机时保持没有宕机的结点分配的内容不变
多个消费者集中到一起去处理某一个Topic的数据一个组消费者消费一个分区的数据共享一组偏移量(一组的消费者不会消费到同一条数据)
p2
选举
生产者发送的消息实际上是以日志文件的形式保存在对应分区的磁盘上。每条消息都有一个offset值来表示它在分区中的位置。有高水位线:只有在高水位线之内的才会被暴露出去。
表示消费到分区中的某个消息所在的位置。offset=9,表示ConsumerA已经消费完offset为8的那条数据,下次从第9条开始消费。Topic中有50个分区,consumer_offsets所在分区由消费者组决定: groupid的hashCode值对50取余
0 条评论
下一页