kafka发送消费核心参数与设计原理详解
核心参数详解:
发送端参数:
发送方式:默认值一般都是1:
重试参数 :
批量参数:
消费端参数:
自动提交参数:
如果是false,就是说消费完后不提交位移。也就是说比如之前消费的1-5.第N次还是消费到1-5.如果是false。那么第一次消费1-3,第二次消费4-5:默认是true:我们一般用false。因为会有消息丢失和消息重复消费的问题可能发生。那么我们就得手设置提交了:
比如我们设置了false,那么下面这个自动提交间隔参数就没用了。
同步提交和异步提交:
消费指定分区参数:
发消息的时候给分区0和1都发送消息了:
消费的时候只消费了0分区的:
消息回溯消费参数:
指定offset消费参数:
指定时间点消费参数:
这个参数:
这几个参数线上出问题的时候用得到:
心跳参数:
这个参数:
springboot整合kafka:
提交参数的配置可选项:
像这样:如果是上面配置的话 需要加上这个参数提交:
但是如果这里是batch:
就不需要手动提交,这个方法结束的时候,springboot会帮你提交:
这两个参数都是需要像上面那样在java代码里手动提交的:
原理:
进入到zk,就可以看到总控制器是broker0;这个controller节点是broker在启动的时候就创建的。谁先启动谁就是总控制器。但是是批量启动broke的话,那么就牵扯到ZK的ZAB协议选举来决定谁是总控制器了。
找的就是ISR的节点,按照这个顺序来作为新的leader