kafka manager
- jvm 参数
xmn 年轻代大小
xmx 最大可用内存大小
xms 最小内存大小
xss: 每个线程堆栈大小. jdk 1.5之后,线程大小为1M.
-
线上问题优化
ack 0,不等Broker应答就结束
1 写到Leader
all(-1) 之间的取舍 备份数据都成功写入到日志 -
手动签收端出错,offset未能提交.
消息堆积:
手动提交offset,但是消费的时候报错了.重试,导致offset移动不下去,
消息逐渐堆积.
-
消费端幂
网络抖动,Broker收到了消息,但是发送方会重新发送消息. -
消息乱序:
有序消息发送到同一个分区 -
消息积压
挤压了百万的未消费的消息,临时topic,同时设置很多分区.
将消费不成功的消息转发到其他队列中(类似死信队列) -
延迟队列
topic_1s,5 10 s.
- 消息回溯
offsetsForTimes,seek 从 某个偏移的 msg开始消费.
增大kafka分区:
吞吐量的走势还和 磁盘,文件系统,IO调度 策略相关.
kafka 生产端幂等性 !!! 重要
-
props.put("enable.idempotence",true) 默认是false不打开的
-
打开-》产生PID和SequenceNum,会发送给Broker端
-
Broker检查PID和Sequence Numer,如果相同则Broker端不会接受.
- kafka 事务
流式计算场景用的多一些。(保障一次发送多条消息的事务一致性)
需要对一个topic的消息做流式计算,分别会被下游的hbase,redis,es 消费.
Screen Shot 2022-07-21 at 11.59.59 AM.png- 零拷贝 略。。
网友评论