Kafka

第四天kafka知识

Producer基础的案例

1 Producer的小案例 

  电商系统,会员,凡是能登录的人都是会员。

  你消费了多少钱,那么就给给你累计多少积分。

  比如,你消费了1000块钱,那么同时给你找个会员号1000积分

 

1.1 在kafka里面,我们发送消息的时候,可以给消息指定key,也可以不指定

  key跟我们要把找个消息发送到这个主题的哪个分区有关系

1.1.1 不指定key 

  发送的一条消息,会以轮询的方式 发送到分区里面 (要么轮询,要么随机)

  hadoop   p0

  flink    p1

  hbase   p0

  hadoop      p0

1.1.2 如果指定key ,test

  test 取这个key的hash值  数字  3

  数字/分区数  

  3/2 

  比如我们分区数2,结果要么是0,要么是1 

  test hadoop -> p1

  这样子的话,我们可以保证这样的一个事,key相同的消息

  一定会被发送到同一个分区

2 consumer的原理

2.1 offset 

  在kafka里面,kafka是不帮我们维护这个offset的,这个偏移量需要consumer自己去维护

  consumer这儿,kafka提供了两个参数

  是否开启自动提交偏移量

  每隔多久提交一次消费的offset 

  enable.auto.commit   true

  auto.commit.interval  1000

2.2 偏移量的数据存到哪呢?

2.2.1 kafka 0.8版本的时候,消费者偏移量的数据是存储到zookeeper里面

  高并发,zookeeper会出问题

2.2.2 kafka0.8之后,offset存储到了kafka内部的一个主题里面,__consumer_offset 

  这个kafka内部的主题,默认是50个分区

  默认只有一个副本

  把压力分散到各个broker节点上

2.3 Coordinator  启动进行了负载均衡

  根据group ID(消费者组),计算出来一个hash值,计算出来以后就是一个数据,然后用这个对  _consumer_offset的分区数(50)

  取模,比如:2,就到集群里面去看 partition为2的这个分区的leader partition在哪一台服务器上面,那么那一台

  服务器就是coordinator服务器 

  1 所有的消费者,都会发送join group 的一个请求;consumer group 向coordinator进行注册

  2 coordinator服务器会从这个消费组的所有消费者选一个leader consumer,同时这个coordinator服务器也会 

  把你要消费topic的消息发送给leader consumer(谁先注册到coordinator,谁就是leader consumer)

  3 leader consumer 制定分区的消费方案,发送sync group 请求,然后把分区消费方案发送给coordinator

  4 coordinator 然后下发消费方案,给每个consumer 

  5 一旦有一个consumer挂掉,会重新走一遍上面流程,重新执行

2.4 Coordinator 负载均衡策略(了解)

  1 range策略 默认

  2 round-robin策略

  3 sticky策略

  

24-4 深入浅出kafka4 02:15:00分

==============================================================================================================

 

 

3 下一个简单的consumer的基础API

4 consumer的核心参数

5 Consumer小案例

回头再去看第一天的课程里面,有几个地方没讲。(听起来会有点绕)

1 稀松索引

2 ISR机制

3 HW,LEO的更新流程

如果讲完以后当时如果似懂非懂也没事,下去以后再看一下视频,就明白了。

补充:

重试乱序:消息重试是肯能导致消息的乱序的,因为可能排在你后面的消息都发送出去了,你现在收到回调失败了才重试,此时消息

会乱系,所以使用max.in.flight.requests.per.connection 参数设置为1 ,这样可以保证producer同一时间只能发送一条消息

这个知识点先不讲,后面讲kafaka的解决方案的时候讲。

 

posted @ 2020-06-22 23:37  起始的地方  阅读(143)  评论(0编辑  收藏  举报