![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
kafka
shuoyuechenxing
喜欢数学,喜欢算法,喜欢Java,热爱编程。
展开
-
2020-08-16
kafka的分区分配策略 如果指定了分区号,直接发往相应的分区号 如果没有指定分区号,但是发送的消息指定了key,那么就按照key的hashcode%分区数,得到的结果就是要发送到的分区号 如果都没有指定,那么就按照默认的轮训的方式发送到各个分区 默认是按照轮训的方式,还有一种是round robin方式,这种方式有两个前提条件:一个是消费者组的每一个消费者消费的topic是一样的, ...原创 2020-08-16 21:05:11 · 64 阅读 · 0 评论 -
2020-08-16
kafka的数据一致性问题 这里涉及到两个概念:HW和LEO,LEO是一个分区的一个副本最大的offset,HW是一个分区所有副本最小的LEO。 HW存在的意义: 可以保证数据的可见性。原创 2020-08-16 17:32:39 · 87 阅读 · 0 评论 -
2020-08-16
kafka的enable.autuo.commit参数详解 这个参数有两个取值,一个是true,一个是false,默认是true。 如果是true,还需要配置auto.commit.interval.ms这个参数使用,表示每几秒钟自动提交一次offset;如果enable.autuo.commit=false,那么就是不自动提交offset,如果不手动提交的话,也不是每一次消费者去拉去数据的时候都__consumer_offset主题去读取这个参数,而是再第一次拉取数据之后把offset保存在内存里,当第二原创 2020-08-16 17:28:09 · 65 阅读 · 0 评论 -
2020-08-16
kafka的auto.offset.reset这个参数详解 当设置了这个参数之后不一定会生效,它生效有以下两种情况: 1)当消费者组第一次消费的时候,会生效 2)当当前保存的offset对应的数据不存在的时候会生效(比如,broker保持的当前offset是100,但是log文件里面offset为100的数据已经过了默认保存的7天,对应的数据被删除了,那么这个参数也会生效) 这个参数有两个取值,一个是latest,一个是earliest,默认是latest。 举个例子,我们在控制台上开启一个消费者的时候,默原创 2020-08-16 17:07:26 · 100 阅读 · 0 评论