一个消息系统负责将数据从一个应用传递到另外一个应用,应用只需关注于数据,无需关注数据在两个或多个应用间是如何传递的。分布式消息传递基于可靠的消息队列,在客户端应用和消息系统之间异步传递消息。有两种主要的消息传递模式:点对点传递模式、发布-订阅模式。大部分的消息系统选用发布-订阅模式。Kafka就是一种发布-订阅模式。
架构示意图:
常见面试题:
1.Kafka 的设计时什么样的呢?
2.数据传输的事物定义有哪三种?
3.Kafka 判断一个节点是否还活着有那两个条件?
4.producer 是否直接将数据发送到 broker 的 leader(主节点)?
5、Kafa consumer 是否可以消费指定分区消息?
6、Kafka 消息是采用 Pull 模式,还是 Push 模式?
7.Kafka 存储在硬盘上的消息格式是什么?
8.Kafka 高效文件存储设计特点:
9.Kafka 与传统消息系统之间有三个关键区别
10.Kafka 创建 Topic 时如何将分区放置到不同的 Broker 中
11.Kafka 新建的分区会在哪个目录下创建
12.partition 的数据如何保存到硬盘
13.kafka 的 ack 机制
14.Kafka