kafka采用分片(segement)和索引(用.log和.index索引segement)防止单个数据文件过大。
位于在data文件夹下存在以topic命名的文件夹
数据可靠性:
使用ISR标记当前有效的follower,当ISR同步数据后,向producer发送ACK
根据业务需求选择数据可靠性的级别:
acks=0(接收后返回)数据不重复但是会丢失
acks=1(leader存储后返回)
acks=-1(ISR存储后返回)数据不丢失但是会重复
Exactly Once(kafka只存1条) = acks=-1 + 幂等性
数据一致性:不能保证数据完整性
幂等性:
配置Producer 的 enable.idompotence = true
Producer在初始化时会被分配1个PID,Broker 端会缓存<PID, Partition, SeqNumber>(SeqNumber附在消息上) 注意PID 重启就会变化
网友评论