Kafka-1.APIS

2019-06-11 19:44:04 浏览数 (1)

Kafka包含5个核心APIs:

  1. 生产者API,向Kafka集群中的主题发送数据流;
  2. 消费者API,从Kafka集群中的主题读取数据流;
  3. 流API,从输入主题向输出主题传输数据流;
  4. 连接API,实现从源系统或应用持续向Kafka中拉取数据,或从Kafka向其他sink系统或应用推送数据的连接器;
  5. 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。

0 人点赞