大数据面试题:Kafka的ISR、OSR和ACK介绍,ACK分别有几种值?

312 阅读1分钟

参考答案:

ISR(In-Sync Replicas):副本同步队列

ISR是Leader维护了一个动态副本同步队列,是和leader保持同步的follower集合。

OSR(Out-Sync Relipcas):

当ISR中的follower长时间(replica.lag.time.max.ms参数设定)未向leader同步数据,则该follower将被踢出ISR,加入到OSR。

ACK:producer的消息发送确认机制

ack=0

producer不等待broker的ack,这一操作提供了一个最低的延迟,broker一接收到还没有写入磁盘就已经返回,当broker故障时有可能丢失数据

ack=1

producer等待broker的ack,partition的leader落盘成功后返回ack,如果在follower同步成功之前leader故障,那么将会丢失数据;

ack=-1

producer等待broker的ack,partition的leader和follower全部落盘成功后才返回ack。但是如果在follower同步完成后,broker发送ack之前,leader发生故障,那么会造成数据重复。