kafka从入门到精通总结

  1.kafka问题列表

  1.     kafka的使用,生产者和消费者配置?序列化方式,如何保证kafka producer发送一条消息,至少发送一次?
  2.     kafka offset了解吗,自动提交还是手动提交?
  3.     kafka分区了解?如何查询某个topic的各分区消费情况
  4.     kafka SimpleConsumer使用过吗?
  5.     kafka 和zk的关系?zk对于kafka来说有什么作用?
  6.     kafka 日志存储?
  7.     kafka zero-copy?
  8.     kafka controller leader选举
  9.     kafka partition leader选举
  10.     kafka rebalance问题
  11.     kafka consumer sessionTimeout导致重复消费问题 
  12.     kafka producer批量发送原理

2.kafka配置

  1. kafka生产者配置

      --broker-list 

      kafka消费者配置

3.offset管理

offset的管理方式一般有两种:

1) zk管理 (zk可能成为瓶颈)

2) kafka自身管理 (效率更高)

4.分区管理

1) 什么是分区,为什么要分区

   一个topic的消息如果数量巨大,那么单个节点处理可能会出现瓶颈,所以讲一个topic的消息划分给多个节点,成为分区。

多个分区可以实现高并发处理消息,并减轻流量和磁盘等压力,另外分区可以在创建topic时,根据预估的流量进行选择。

5.日志管理

1) kafka消息是存储在磁盘的

2) kafka消息是顺序写磁盘的,所以很快

3)日志文件分为索引文件和数据文件,每个文件的名字以下一个文件的开始offset命名

4)   日志文件的大小可以设置,一般为500M

5) 索引文件采用稀疏索引,也是空间和时间的平衡选择

6.消费组管理

1) 每个topic可以有多个消费组,一般用来处理不同的业务逻辑

2) 每个topic的消费组独立消费数据

3) 每个topic的消费组独立维护自己的offset

7.leader选举

1) 分区的leader选举: 从该分区的从节点中选出

8.zero-copy

零拷贝: 直接从内核的页缓存复制到socket缓冲区,避免与用户空间缓冲的交互

9.kafka生产者批量发送原理

1) 生产者的消息是批量发送的

2) 生产者的消息是定时发送的

3) 生产者会先获取 所有分区leader节点的信息,缓存下来

4) 根据消息的key进行哈希,计算出对应的分区,并归类

5) 批量发送

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值