Please enable JavaScript.
Coggle requires JavaScript to display documents.
kafka客户端 - Coggle Diagram
kafka客户端
consumer
consumer group
-
-
-
-
-
rebalance
- 组成员数发生变更。
- 分区发生变更即加了分区或者减了分区
- Consumer使用正则匹配主题,匹配到了新主题
如何避免
-
- session.timeout.ms :协调节点盘旋下线的时间
- heartbeat.interval.ms 控制心跳发送频率
- max.poll.interval.ms 两次poll之间的间隔
- max.poll.records 控制不要太大导致处理慢
-
消费组设置offset策略
- earliest: 把位移调整到当前最早位移处
- lastest 移到最新的地方
- Current 当前提交处
- Specified-Offset: 指定位移
- Shift-By-N: 指定跳过N 负数往回跳
- DateTime: 指定时间
- Duration: 指定时间间隔
__consumer_offsets
- 保存消费者offset
- 第一个consumer启动时则创建
- 默认50个分区,副本3
- 后台线程定时使用compact 策略删除过期主题
-
提交方式
手动提交,异步提交,同步提交
同步阻塞提交,会失败自动重试,影响吞吐量
异步提交,不影响吞吐量,但是失败不会自动重试
-
-
-
-
-
producer
-
-
-
-
幂等性、事务
enable.idempotence 设置为true后自动变成幂等性Producer,
由broker去重,
-
事务由两阶段提交,精确一次
设置 Producer 端参数transctional. id
producer.initTransactions()、.beginTransaction()
commitTransaction(),abortTransaction()
-
-
-