1. 什么是 Kafka
Kafka
是一个分布式流式平台,它有三个关键能力
- 订阅发布记录流,它类似于企业中的
消息队列
或企业消息传递系统
- 以容错的方式存储记录流
- 实时记录流
Kafka 的应用
- 作为消息系统
- 作为存储系统
- 作为流处理器
Kafka 可以建立流数据管道,可靠性的在系统或应用之间获取数据。
建立流式应用传输和响应数据。
Kafka 作为消息系统
Kafka 作为消息系统,它有三个基本组件
Producer : 发布消息的客户端
- Broker:一个从生产者接受并存储消息的客户端
- Consumer : 消费者从 Broker 中读取消息
在大型系统中,会需要和很多子系统做交互,也需要消息传递,在诸如此类系统中,你会找到源系统(消息发送方)和 目的系统(消息接收方)。为了在这样的消息系统中传输数据,你需要有合适的数据管道
这种数据的交互看起来就很混乱,如果我们使用消息传递系统,那么系统就会变得更加简单和整洁
Kafka 运行在一个或多个数据中心的服务器上作为集群运行
- Kafka 集群存储消息记录的目录被称为
topics
- 每一条消息记录包含三个要素:键(key)、值(value)、时间戳(Timestamp)
核心 API
Kafka 有四个核心API,它们分别是
- Producer API,它允许应用程序向一个或多个 topics 上发送消息记录
- Consumer API,允许应用程序订阅一个或多个 topics 并处理为其生成的记录流
- Streams API,它允许应用程序作为流处理器,从一个或多个主题中消费输入流并为其生成输出流,有效的将输入流转换为输出流。
- Connector API,它允许构建和运行将 Kafka 主题连接到现有应用程序或数据系统的可用生产者和消费者。例如,关系数据库的连接器可能会捕获对表的所有更改