Kafka知识点
2021-05-29 14:38:25 0 举报
Kafka知识点
作者其他创作
大纲/内容
触发回调,controller,选择满足条件(ISR)的第一个副本作为leader,同步信息到其它broker
request queue
processor2
支持自定义分区器
partion leader(分区leader)
product client
kernel
1.fetch.min.bytes2.fetch.min.wait.ms3.max.partition.fetch.bytes4.max.poll.records
client 4
clientId
partion2
log 文件
一致性
日志删除
概念:AR:分区所有副本统称ARISR:与leader副本保持一定程度的副本包括leader副本OSR:与leader副本滞后过多的副本HW:高水位offset标识了消费者只能获取offset之前的数据LEO:表示该副本未来第一条数据offset,也就是当前副本文件末尾
message 21
进行数据压缩
序列化器
零拷贝cow
参数
processor3
acks
1.修改时间在N天之前的进行删除2.文件大小达到指定值进行删除
数据交互过程
etcd选举机制
processor4
1.acks2.retries3.batch.size4.max.request.size5.clientId
解决了跨分区幂等性问题(原子性)
内存
拦截器
client 2
kafka
过滤数据
topic
使用分区 分段 稀疏索引进行数据查找(二分)
retries
读取数据 offset
processor1
client 1
client
send file
数据直接写入磁盘
.fetch.min.wait.ms
读取数据
再均衡
request channel
Kafka模型
幂等性
数据
每次写入kafka如过失败了,重试次数
返回的最大消息数量
broker leader(controller)
可靠性
max.poll.records
processor5
当前分区所属消费者转移到另一个消费者
message 2
message 1
handler pool(多线程)
事务
partion1
zk
读取
segment file_offset(500M 文件夹)
max.request.size
segment file_0(500M 文件夹)
将生产者数据反序列化
可以设置单消息最大大小,也可以设置总消息的大小,最好和kafka broker配置的相同,避免kafka拒绝接受消息
kafka消费者在同一个分区的数据消费是用顺序的(这里可能会出消息丢失,消费重复消费)三种提交方式:1.自动提交2.同步提交3.异步提交
分别有0 1 -1 三个选择0.表示生产者发送消息后就不关心服务的响应1.表示生产者发送消息后需要获取分区leader的写入成功的响应才算写入成功-1.表示生产者发送消息后需要获取所有副本分区写入成功
通过zk选举出broker leader作为控制器1.管理所有分区和副本2.通知其它broker更新信息
1.副本选举机制2.消息滞后过多的ISR会变成OSR,防止leader切换导致数据丢失
日志压缩
Acceptor(thread)
index 文件
mmap 将用户虚拟地址映射到真实物理地址,不经过内核copy
read
接受数据最长等待时间
client 3
mmap
max.partition.fetch.bytes
每个分区最大返回数据内容
leader选举
Kafka底层存储
通过设置groupId配置消费组
四个文件:1. .data2. .index3. .timeindex4.leader_epoch_checkpoint
磁盘
位移提交
Kafka消费者/消费组
返回数据
Kafka可用性
leader
分区器
.fetch.min.bytes
可以设置写入同一个分区数据时,设置内存存储大小,当达到指定值后才发送给kafka。避免频繁执行kafka写入操作
batch.size
表示生产者身份,如果不设置会随机生成唯一的clientId
follower
consume client
写入数据
每次读取最小的数量,达到后,broker就返回数据
NIO
用户态
生产者配置参数,防止数据重或丢1.只能保证同个分区内的幂等性2.只能保证在同一个会话内的连接幂等性
....
Kafka生产者
控制器
client 5
0 条评论
下一页