Kafka包含5个核心APIs:
- 生产者API,向Kafka集群中的主题发送数据流;
- 消费者API,从Kafka集群中的主题读取数据流;
- 流API,从输入主题向输出主题传输数据流;
- 连接API,实现从源系统或应用持续向Kafka中拉取数据,或从Kafka向其他sink系统或应用推送数据的连接器;
- AdminClient API,管理和检查主题,代理,和其他Kafka对象。
Kafka通过一个语言独立的协议发布其所有功能,这个协议在很多编程语言都有可用的客户端。不过只有Java客户端是作为主要Kafka项目的一部分来维护的,其他客户端是以独立的开源项目提供的。无Java客户端在这里提供。
1 Producer API
生产者API可以使应用向Kafka集群中的主题发送数据流。 javadoc里有使用生产者API的例子。 使用生产者api,需要添加如下maven依赖:
代码语言:javascript复制<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>2.2.0</version>
</dependency>
2 Consumer API
消费者API能让应用从Kafka集群中读取数据流。 javadoc里有使用消费者API的例子。 使用消费者api,需要添加如下maven依赖:
代码语言:javascript复制<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>2.2.0</version>
</dependency>
3 Streams API
流API能从输入主题向输出主题传输数据。 javadoc里有使用这个库文件的例子。 使用流API的附加文档在这里提供。 使用Kafka流,需要添加如下maven依赖:
代码语言:javascript复制<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-streams</artifactId>
<version>2.2.0</version>
</dependency>
使用Scala的话,可以选择包含kafka-streams-scala库。为Scala使用Kafka Streams DSL的附加文档在开发者文档中提供。 要为了Scala2.12 使用Kafka Streams DSL,需要添加如下maven依赖:
代码语言:javascript复制<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-streams-scala_2.12</artifactId>
<version>2.2.0</version>
</dependency>
4 Connect API
连接API能实现连接器从源数据系统中连续抽取数据到Kafka,或者从Kafka向sink数据系统推送数据。 许多Connect的使用者不需要直接使用这个API,他们能使用预构建的连接器,而不需要写任何代码。使用Connect的附加信息这里提供。 如果实现订制的连接器,可以参考javadoc。
5 AdminClient API
这个API支持对topics, brokers, acls, and other Kafka objects管理和检查。 使用这个API需要添加如下maven依赖:
代码语言:javascript复制<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>2.2.0</version>
</dependency>
更多关于这个API的信息,参考 javadoc。