1.ack
Kafka Producer的参数,是把数据写到Kafka broker里面去时需要的参数。常见的值有1、0、all(-1)。
0:leader不做等待,只管发不管结果。延时性最低、持久性最差;
1(默认):只要leader写数据到本地即可,不关注followers。当leader挂掉了可能会有数据丢失。延时性较低、持久性较高;
all(或者-1):leader关注ISR(In-Sync Replicas)中所有的与leader保持同步的副本(followers),得到followers的确认才发送接下来的数据。延时性高、持久性高;
2.Kafka文件存储机制
2.1 基础机制
一个Topic下会有1到N个Partition,一个Partition作为一个目录,每个Partition的名称是Topic名称+有序编号。Partition是实际物理上的概念,而Topic是逻辑上的概念。
编号从0开始,到N-1结束:
- topic-0
- topic-1
- topic-2
每个Partition把大文件拆分成很多大小相等的Segment文件,每个Segment文件又被分为".index"的索引文件与".log"的数据文件。
举例来说,进入topic-0文件夹:
cd topic-0
第一个Segment文件: