1、ack配置
ack确认机制设置为-1,也就是让消息写入leader和所有的副本,ISR列表中的所有replica都返回确认消息。
ack确认机制设置为1,leader已经接收了数据的确认信息,replica异步拉取消息,比较折中。
ack确认机制设置为2,表示producer写partition leader和其他一个follower成功的时候,broker就返回成功,无论其他的partition follower是否写成功。
ack确认机制设置为 “all” 即所有副本都同步到数据时send方法才返回, 以此来完全判断数据是否发送成功, 理论上来讲数据不会丢失。
2、手动提交offset
enable.auto.commit=false
0.81版用low level自行控制(代码量多)
3、配置上消息重试的机制
4、缩小缓冲时间区间(牺牲效率)
log.flush.interval.messages和log.flush.interval.ms来配置flush间隔