首页   快速返回

kafka知识点整理之概述     所属分类 kafka
消息中间件  消息队列
生产者 消费者 kafka集群  broker  zk
producer consumer

结构化消息格式 二进制 传输协议

队列  
发布/订阅

topic 发布者(publisher) 订阅者(subscriber)

消息组 consumer group 


设计要点
吞吐量/延时、消息持久化、负载均衡和故障转移、伸缩性。

高吞吐量低延时实现要点
页缓存和采用追加写入消息的方式。
页缓存在内存中分配,消息写入速度快, 避免与文件系统直接交互
追加写入,避免随机写,磁盘顺序读写性能高
sendfile 零拷贝 提升网络传输效率


读取消息,页缓存中读取(避免直接穿透到硬盘),命中的话直接发送到网络,零拷贝(zero copy) 
传统 IO  数据拷贝 多次拷贝 内核态用户态切换

持久化消息  方便 消息重放

负载均衡和故障转移
partition leader选举算法
故障转移 zk 会话机制

伸缩性

尽量无状态 zk 统一管理元数据  


消息由消息头部、key和value组成。

CRC 版本号 属性 时间戳 key长度 key value长度 value 


使用紧凑的二进制字节数组 ByteBuffer
broker进程崩溃时 ,页缓存数据仍然存在  
topic-partition-message
  
定位一条消息 topic, partition,offset


replica副本、leader、follower

leader 负责客户端读写, follower只是从leader 同步数据,保持与leader的同步 ,最为leader的候补

ISR  in sync replica
只有这个集合中的replica才能被选举为leader
只有该集合中所有replica都接收到了同一条消息,才会将该消息置于“已提交”状态,即认为这条消息发送成功。

消息不丢失的两个要点
ISR中至少有一个replica
消息已提交
动态维护 ISR 列表

上一篇     下一篇
spring配置bean的三种方式

linux日志文件介绍

网站SEO robots文件写法

2019年杭州的独角兽和准独角兽们

springboot常用注解和配置整理

大数据日知录第一章数据分片与路由读书笔记