Kafka
基础
Broker
- 一个集群中,每个服务server
Topic
- 主题,代表一个消息的类型
- partition
- 分区,对一个topic划分为多个分区
- Replica
- 一个分区可以存在多个replica,除了leader对外提供服务,其他salve用于同步数据
- segment
- 为防止log不断追加导致文件过大,导致检索消息效率变低,一个partition又被划分为多个segment来组织数据
- partition
Producer
- 生产者,发部消息到topic
Consumer
- 消费者,订阅topic 从一个topic pull数据
- offset
- 偏移量,kafka的数据是顺序写入,顺序拉取的
- Group
- 同一个消费组的消费者不能制定同一个topic的同一个partition
- offset
ACK机制
- producer
- acks=0
- producer不等待Broker的ACK,这种方式延迟最低,但如果在还未保存数据,broker故障,则数据丢失。
- acks=1
- producer等待broker的leader写成功后返回ACK,此方式为默认方式。如果在leader与follower同步成功前leader故障,可能带来数据丢失。
- acks=-1(all)
- producer等待broker的leader和follwer全部写数据成功后保存,此方法效率最低,但数据一致性最高。
- acks=0
- consumer
- 与通常的mq consumer使用pull的方式获取数据,没有ACK机制,通过offset来设置读取位置。
来源:oschina
链接:https://my.oschina.net/johnhjwsosd/blog/4949372