字节跳动,青训营社区课程,2h
Kafka 是一个分布式的基于发布/订阅模式的消息队列(Message Queue)
Kafka:分布式时间流平台,用于高性能数据管道、流分析、数据集成、关键任务应用
MQ的两种模式


main线程:producer
Interceptor:
Searilizer:序列化数据
分区器:决定数据放到那个DQueue,都是在内存完成。
RecordAccumulator:在内存中,使用的内存池(双端队列)
batch.size:默认16k
linger.ms:
当selector接收到broker的应答acks时,如果是成功的会清理缓存的请求以及Dqueue中的producerbatch
如果失败就会一直尝试


(1)合理使用存储资源
(2)提高并行度
(1)kafka高吞吐、稳定性
(2)kafaka的缺点:

others:
一个topic对应着不同的分区(parition)



ISR- In Sync Replicas:当Follower与Leader差距很大,就会提出ISR,Leader Replica将会从ISR中选出,当ISR中的Leader跪掉了,就从ISR中选出Follower
Broker中的Controller他是老大,负责管理topic的paritition

1条消息发送给broker,broker返回succ()
改进:batch、压缩

.idex就是offset

Broker顺序写,减少磁盘寻道时间;
consumer向broker发送featchRequest,broker内部寻找消息?
从磁盘读取数据,直接发送网卡,不需要进过状态的切换。

consumer和parition的分配问题(手动 or 自动)
引入coordinator实现自动分片。coordinator负责

consumer自动分配
