原文地址: http://kafka.apache.org/documentation.html#api

Apache Kafka包含新的java客户端,这些新的的客户端将取代现存的Scala客户端,但是为了兼容性,它们仍将存在一段时间。可以通过一些单独的jar包调用这些客户端,这些包的依赖性都比较小,同时老的Scala客户端仍会存在。

一、Producer   API

我们鼓励所有新开发都使用新的java版本producer。这个客户端是经过生产环境测试的,并且一般情况下会比先前的Scala客户端要更快而且具有更多的特性。你可以通过添加对客户端jar包的依赖来调用这个客户端,如下所示,使用maven配置:

        <dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-clients</artifactId><version>0.10.0.0</version></dependency>
可以通过javadoc文件查看如何使用producer。

二、Consumer API
在0.9.0发布版本中,增加了新的java版本的consumer,用来替代已有的high-level的基于zookeeper的consumer,以及low-level的consumer APIs。
这个客户端认为是beta版本。为了保证用户获得平稳的升级,我们会继续维护0.8版本的consumer客户端,此版本客户端会在0.9版本的kafka集群中
依然生效。下面的章节中,我们会介绍老的0.8版本的consumer APIs(包括high-level的ConusmerConnector以及low-level SimpleConsumer)以及
新的Java版本的consumer API。

1、Old High  Level Consumer  API
class   Consumer{
  /**
   *  Create a ConsumerConnector:创建consumer connector
   *
   *  @param config at the minimum, need to specify the groupid of the consumer and the zookeeper connection string zookeeper.connect.config参数作用:需要置顶consumer的groupid以及zookeeper连接字符串zookeeper.connect
   */

    public static kafka.javaapi.consumer.ConsumerConnector  createJavaConsumerConnector(ConsumerConfig  config);
  }

  /**
   *  V: type of the message: 消息类型
   *  K: type of the optional key assciated with the message: 消息携带的可选关键字类型
   */
   public interface kafka.javaapi.consumer.ConsumerConnector {
     /**
      *  Create a list of message streams of type T for each topic.:为每个topic创建T类型的消息流的列表
      * 
      *  @param topicCountMap a map of (topic, #streams) pair   : topic与streams的键值对
      *  @param decoder a decoder that converts from Message to T  : 转换Message到T的解码器
      *  @return  a map of (topic, list of KafakStream) pairs.   : topic与KafkaStream列表的键值对
      *           The number of items in the list is #streams . Each stream supports
      *           an iterator over message/metadata pairs .:列表中项目的数量是#streams。每个stream都支持基于message/metadata 对的迭代器
      */
      public <K,V> Map<String, List<KafkaStream<K,V> > >
        createMessageStreams( Map<String, Integer> topicCountMap, Decoder<K> keyDecoder, Decoder<V> valueDecoder);

    /***  Create a list of message streams of type T for each topic, using the default decoder.为每个topic创建T类型的消息列表。使用默认解码器*/
     public Map<String, List<KafkaStream<byte[], byte[]>>> createMessageStreams(Map<String, Integer> topicCountMap);
/***  Create a list of message streams for topics matching a wildcard.为匹配wildcard的topics创建消息流的列表**  @param topicFilter a TopicFilter that specifies which topics to*                    subscribe to (encapsulates a whitelist or a blacklist).指定将要订阅的topics的TopicFilter(封装了whitelist或者黑名单)*  @param numStreams the number of message streams to return.将要返回的流的数量*  @param keyDecoder a decoder that decodes the message key  可以解码关键字key的解码器*  @param valueDecoder a decoder that decodes the message itself  可以解码消息本身的解码器*  @return a list of KafkaStream. Each stream supports an*          iterator over its MessageAndMetadata elements.  返回KafkaStream的列表。每个流都支持基于MessagesAndMetadata 元素的迭代器。*/
 public <K,V> List<KafkaStream<K,V>>createMessageStreamsByFilter(TopicFilter topicFilter, int numStreams, Decoder<K> keyDecoder, Decoder<V> valueDecoder);
/***  Create a list of message streams for topics matching a wildcard, using the default decoder.使用默认解码器,为匹配wildcard的topics创建消息流列表*/public List<KafkaStream<byte[], byte[]>> createMessageStreamsByFilter(TopicFilter topicFilter, int numStreams);/***  Create a list of message streams for topics matching a wildcard, using the default decoder, with one stream.使用默认解码器,为匹配wildcard的topics创建消息流列表*/public List<KafkaStream<byte[], byte[]>> createMessageStreamsByFilter(TopicFilter topicFilter);/***  Commit the offsets of all topic/partitions connected by this connector.通过connector提交所有topic/partitions的offsets*/public void commitOffsets();/***  Shut down the connector: 关闭connector*/public void shutdown();
}

     
你可以根据这个例子学习怎样使用high level consumer api。
2、Old Simple Consumer  API
class kafka.javaapi.consumer.SimpleConsumer {/***  Fetch a set of messages from a topic.从topis抓取消息序列**  @param request specifies the topic name, topic partition, starting byte offset, maximum bytes to be fetched.指定topic 名字,topic partition,开始的字节offset,抓取的最大字节数*  @return a set of fetched messages*/public FetchResponse fetch(kafka.javaapi.FetchRequest request);/***  Fetch metadata for a sequence of topics.抓取一系列topics的metadata**  @param request specifies the versionId, clientId, sequence of topics.指定versionId,clientId,topics*  @return metadata for each topic in the request.返回此要求中每个topic的元素据*/public kafka.javaapi.TopicMetadataResponse send(kafka.javaapi.TopicMetadataRequest request);/***  Get a list of valid offsets (up to maxSize) before the given time.在给定的时间内返回正确偏移的列表**  @param request a [[kafka.javaapi.OffsetRequest]] object. *  @return a [[kafka.javaapi.OffsetResponse]] object.*/public kafak.javaapi.OffsetResponse getOffsetsBefore(OffsetRequest request);/*** Close the SimpleConsumer.关闭*/public void close();
}

对大多数应用来说, high  level consumer  Api已经足够了,一些应用要求的一些特征还没有出现high level consumer接口(例如,
当重启consumer时,设置初始offset)。他们可以使用low level SimpleConsumer  Api。逻辑可能会有些复杂,你可以根据这个例子学习一下。

3、New Consumer API

新consumer API统一了标准,原来存在于0.8版本的high-level以及low-level consumer APIs之间差异不存在了。你可以通过使用下面maven配置方式,
指明客户端依赖的jar包,这样就可以使用新的consumer API。
  <dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-clients</artifactId><version>0.10.0.0</version></dependency>
Examples showing how to use the consumer are given in the javadocs.

三、Streams API
在0.10.0 release版本中,我们增加了新的客户端调用库Kafka Streams,用来支持流式处理应用。Kafka Streams库认为是
alpha版本质量的,同时它的公共调用APIs在将来有可能会修改。你可以像下面maven配置模式一样,指明Kafka Streams的
依赖关系来调用Kafka Streams。
  <dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-streams</artifactId><version>0.10.0.0</version></dependency>
在Javadocs中展示了如何调用这个库(注意这些类都是不稳定的,表明以后的版本中可能会修改)。
												

kafka文档(3)----0.8.2-kafka API(java版本)相关推荐

  1. Facebook 游戏开发更新文档 API 参考文档 v6.0

    Facebook 游戏开发更新文档 API 参考文档 v6.0 更新日志 1.排行榜 此版本全新推出排行榜 API!提供一套强大的 API, 使得游戏可获取排行榜.查询得分 情况和设置新分数(支持分数 ...

  2. Kafka文档(1)---- 基本介绍(Getting Start)

    Apache Kafka官网首页翻译 Apache Kafka  是发布-订阅机制的消息传递系统,可以认为具有分布式日志提交功能. Fast 一个单独的Kafka  broker每秒可以处理来自成千上 ...

  3. 阿里P8架构大神分享纯手写“kafka文档”看完直呼太牛!

    什么是 Kafka Kafka 是由 Linkedin 公司开发的,它是一个分布式的,支持多分区.多副本,基于 Zookeeper 的分布式消息流平台,它同时也是一款开源的基于发布订阅模式的消息引擎系 ...

  4. Spring Cloud Alibaba 参考文档-2021.0.4.0

    Spring Cloud Alibaba 简介 依赖管理 Spring Cloud Alibaba Nacos Discovery 3.1 服务注册/发现:Nacos Discovery 3.2 如何 ...

  5. LGame文档及0.2.8版发布预告

    为了证明小弟最近不是什么都没干,为了某位网友的呼唤,也为了表白在下确实正艰苦卓绝的构建着 文档及代码, LGame文档及0.2.8版,已决定于9月15日正式发布, 以下是一些相关信息. ------- ...

  6. Guns 技术文档 v1.0

    Guns 技术文档 v1.0 Guns 技术文档 v1.0 1. 序言 1.1 文档简介 1.2 Guns教程 1.3 获取帮助 2. 使用手册 2.1 下载项目 2.2 导入项目 2.2.1 ecl ...

  7. html版api文档,将html版API文档转换成chm格式的API文档

    将html版API文档转换成chm格式的API文档并不是一件难事,所需要的只是2个工具及其你要制作的API的javadoc文档,一般去官网下载的话,都会有源代码和javadoc,软件一个是制作chm文 ...

  8. kafka文档: 配置选项翻译

    2019独角兽企业重金招聘Python工程师标准>>> 问题导读 1.broker.id的作用是什么? 2.max.message.bytes表示什么含义? 3.group.id是用 ...

  9. kafka文档(3)---- 配置选项翻译

    来源:http://kafka.apache.org/documentation.html#configuration 3.     Configuration Kafka在配置文件中使用key-va ...

最新文章

  1. noj数据结构稀疏矩阵的加法十字链表_一个算法毁了一款好游戏?算法和数据结构到底有多重要?...
  2. 转:SLAM算法解析:抓住视觉SLAM难点,了解技术发展大趋势
  3. .NET 6 攻略大全(二)
  4. Python 第三方模块之 PDFMiner(pdf信息提取)
  5. es6 Promise 的含义
  6. Java 16 正式发布
  7. QQ网页链接打开本地QQ.exe原理
  8. python防反编译_linux python如何反编译成源码
  9. 「产品经理全连接系列2」企业如何开展敏捷或DevOps的研发变革
  10. JavaScript问题01 js代码放在header和body的区别
  11. 如何在自己的网站中嵌入其他网站的页面?
  12. matlab车轮滚动动画,利用几何画板演示滚动的车轮
  13. 清除计算机垃圾cmd命令,cmd清理垃圾命令代码是什么
  14. Matlab里DTW算法和图像
  15. 【p6spy】程序员开发利器P6spy——打印执行sql语句,mybatis、ibatis、Hibernate均可使用
  16. php 搜索多模型,基于迅搜(xunsearch) + Laravel Scout 实现 Laravel 学院全文搜索功能(支持多模型搜索)...
  17. oracle odac安装图解,Oracle数据访问组件ODAC的安装方法
  18. C语言程序——用星号打印图案
  19. html制作小短片,教你制作微视频 一分钟成为电影大师!
  20. 回顾码农历程总结2013 期待2014

热门文章

  1. 38. 字符串的排列
  2. 读心神探感悟 读心神探 语录 读心神探 观后感
  3. 如何在Python中加速信号处理
  4. python中图片绘制和输出相关库的原理详解
  5. “创药网”-创新药领域专业资讯网站​
  6. 知识图谱类产品-开题报告构想(一)
  7. RMAN Recipes 中对Flash Recovery Area的总结
  8. 数字小写到英文大写的转换
  9. 流体机械原理及设计07
  10. Android 小知识记录-----息屏后亮屏并显示Activity在锁屏页面之上