Kafka
目录
介绍
Kafka是一个分布式流处理平台,也称消息队列,是一个包含服务器和客户端的分布式系统,存储层的服务器称为broker,还有运行Kafka Connect的服务器来连续导入和导出数据作为事件流,运行分布式应用的称为客户端
- 发布/订阅事件
- 可储存流式的记录
- 处理或追溯事件
适用场景
- 构造实时流数据管道,它可以在系统或应用之间可靠地获取数据。 (相当于message queue即消息队列)
- 构建实时流式应用程序,对这些流数据进行转换或者影响。 (就是流处理,通过kafka stream topic和topic之间内部进行变化)
事件组成
生产者生产消息,一条消息的组成:主题、分区、键、值、时间戳
Kafka 通过 topic 对存储的流数据进行分类
每条记录中包含一个key,一个value和一个timestamp(时间戳)
四个核心的API
- The Producer API 允许一个应用程序发布一串流式的数据到一个或者多个Kafka topic。
- The Consumer API 允许一个应用程序订阅一个或多个 topic ,并且对发布给他们的流式数据进行处理。
- The Streams API 允许一个应用程序作为一个流处理器,消费一个或者多个topic产生的输入流,然后生产一个输出流到一个或多个topic中去,在输入输出流中进行有效的转换。
- The Connector API 允许构建并运行可重用的生产者或者消费者,将Kafka topics连接到已存在的应用程序或者数据系统。比如,连接到一个关系型数据库,捕捉表(table)的所有变更内容。

事件在使用后不会自动被删除,而是根据自定义的配置来决定何时删除,主题是分区的,一个主题可在多个broker中,相同的键会存放在相同的分区中且保证前后顺序
消费者消费消息,通过偏移量确定获取那个消息,每个分区中,消息的偏移量是唯一的,消费者只能顺序读取
Kafka服务器:broker,每个broker中有多个主题,每个主题会有多个分区
Kafka集群:多个broker