首先添加maven依赖

  Kafka

    <dependency>

      <groupId>org.apache.kafka</groupId>

      <artifactId>kafka_2.10</artifactId>

          <version>0.8.2.2</version>

    </dependency>

  Spring

    <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-context</artifactId>
          <version>4.1.4.RELEASE</version>
    </dependency>
    <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-beans</artifactId>
         <version>4.1.4.RELEASE</version>
    </dependency>
    <dependency>
         <groupId>org.springframework</groupId>
         <artifactId>spring-core</artifactId>
         <version>4.1.4.RELEASE</version>
    </dependency>

  Kafka API

  <dependency>

      <groupId>com.zc</groupId>

      <artifactId>kafka-api-core</artifactId>

      <version>0.1</version>

    </dependency>

kafka-api-core-0.1.jar下载地址:http://files.cnblogs.com/files/zcjy/kafka-api-core-0.1.zip

使用kafka java api有两种方式:

第一种:源码方式

  Consumer:

        KafkaConsumerOptions options = new KafkaConsumerOptions();
options.setConnectionZk("localhost.zk1:2181,localhost.zk2:2181,localhost.zk3:2181");//连接zookeeper
options.setGroupName("group_zc");//设置group
options.setZkSessionTimeout("4000");
options.setZkSyncTime("2000");
options.setAutoCommitInterval("1000");
options.setRebalanceBackOff("4000");
options.setRebalanceMaxRetries("11");
options.setAutoOffsetReset("smallest");
options.setTopicName("testTopic");//设置topic
KafkaConsumerFactory factory = new KafkaConsumerFactory(options);
        factory.initialize();
KafkaConsumer consumer = new KafkaConsumer(factory);
consumer.start(new BaseConsumerHandler() { 
public void execute(String message) {
System.out.println("message : " + message);
}
});

  Producer:

     KafkaProduceOptions options = new KafkaProduceOptions();
options.setMetadataBrokerList("localhost.kafka1:9092,localhost.kafka2:9092,localhost.kafka3:9092");//连接kafka集群
options.setTopicName("testTopic");//设置topic
KafkaProduceFactory factory = new KafkaProduceFactory(options);
factory.sendMessage("test kafka at " + new Date());

第二种:注解方式

  Consumer:

    配置

      <bean id="kafkaConsumerOptions" class="com.zc.kafka.api.core.factory.KafkaConsumerOptions">
            <property name="connectionZk" value="localhost.zk1:2181,localhost.zk2:2181,localhost.zk2:2181" />
            <property name="groupName" value="test_kafka" />
            <property name="zkSessionTimeout" value="4000" />
            <property name="zkSyncTime" value="1000" />
            <property name="autoCommitInterval" value="2000" />
            <property name="rebalanceBackOff" value="2000" />
            <property name="rebalanceMaxRetries" value="11" />
            <property name="autoOffsetReset" value="smallest" />
            <property name="topicName" value="testTopic" />
      </bean>
      <bean id="kafkaConsumerFactory" class="com.zc.kafka.api.core.factory.KafkaConsumerFactory"
         init-method="initialize">
            <constructor-arg ref="kafkaConsumerOptions" />
      </bean>

      <bean id="kafkaConsumer" class="com.zc.kafka.api.core.consumer.KafkaConsumer">
            <constructor-arg ref="kafkaConsumerFactory" />
      </bean>

    代码:

      ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring-kafka-consumer.xml");
      context.start();
      KafkaConsumer consumer = context.getBean(KafkaConsumer.class);
      consumer.start(new BaseConsumerHandler() {
            public void execute(String message) {
                  System.out.println("message : " + message);
            }
      });

  

  Producer:

    配置

      <bean id="kafkaConsumerOptions" class="com.zc.kafka.api.core.factory.KafkaProduceOptions">
            <property name="metadataBrokerList" value="localhost.kafka1:9092,localhost.kafka2:9092,localhost.kafka3:9092" />

        <property name="topicName" value="testTopic" />
      </bean>
      <bean id="kafkaProduceFactory" class="com.zc.kafka.api.core.factory.KafkaProduceFactory"
        init-method="initialize"> 
            <constructor-arg ref="kafkaProduceOptions" />
      </bean>

      <bean id="kafkaProduce" class="com.zc.kafka.api.core.produce.KafkaProduce">
            <constructor-arg ref="kafkaProduceFactory" />
      </bean>

    代码:        

      ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring-kafka-produce.xml");
      context.start();
      KafkaProduce produce = context.getBean(KafkaProduce.class);
      produce.send("test send produce message " + new Date());

  

  

kafka java使用的更多相关文章

  1. [Kafka] - Kafka Java Consumer实现(一)

    Kafka提供了两种Consumer API,分别是:High Level Consumer API 和 Lower Level Consumer API(Simple Consumer API) H ...

  2. 关于Kafka java consumer管理TCP连接的讨论

    本篇是<关于Kafka producer管理TCP连接的讨论>的续篇,主要讨论Kafka java consumer是如何管理TCP连接.实际上,这两篇大部分的内容是相同的,即consum ...

  3. [Kafka] - Kafka Java Consumer实现(二)

    Kafka提供了两种Consumer API,分别是:High Level Consumer API 和 Lower Level Consumer API(Simple Consumer API) H ...

  4. Kafka笔记整理(二):Kafka Java API使用

    下面的测试代码使用的都是下面的topic: $ kafka-topics.sh --describe hadoop --zookeeper uplooking01:,uplooking02:,uplo ...

  5. kafka java API的使用

    Kafka包含四种核心的API: 1.Producer API支持应用将数据流发送到Kafka集群的主题 2.Consumer API支持应用从Kafka集群的主题中读取数据流 3.Streams A ...

  6. 大数据学习day31------spark11-------1. Redis的安装和启动,2 redis客户端 3.Redis的数据类型 4. kafka(安装和常用命令)5.kafka java客户端

    1. Redis Redis是目前一个非常优秀的key-value存储系统(内存的NoSQL数据库).和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list ...

  7. kafka java实例

    生产者 package com; import java.util.Properties; import java.util.concurrent.TimeUnit; import kafka.jav ...

  8. kafka java代码实现消费者

    public class KafkaConsumer { public static void main(String[] args) { Properties props = new Propert ...

  9. kafka java客户端编程

    kafka_2.10-0.8.1.1 maven <dependencies> <dependency> <groupId>org.apache.kafka< ...

随机推荐

  1. 使用jQuery监听扫码枪输入并禁止手动输入的实现方法

    @(知识点总结)[jquery|扫码抢] 基于jQuery的扫码枪监听.如果只是想实现监听获取条码扫码信息,可以直接拿来使用,如果有更多的条码判断处理逻辑需要自己扩展. 一.功能需求 使用扫码枪扫描条 ...

  2. 使用CEF(CEFGLUE)作为您的客户端UI(一)

    背景: 本人是一名C#开发者,而作为C#开发者,做客户端应用中最头痛的一件事就是没有一个好的UI解决方案.WinFrom嘛,效率虽然还不错,但是做一些特殊的效果,完全应付不来,比如透明控件.比FPS太 ...

  3. 在js中,window != top 的作用

    在网站的首页加上下面的javascript,就可以把自己的窗口变成是最前端的窗口.可以避免别人把你的网站放在他的iframe中,显示的就是他的网站了,误导浏览者. <script type=&q ...

  4. 《HelloGitHub》第12期

    <HelloGitHub>第12期 兴趣是最好的老师,<HelloGitHub>就是帮你找到兴趣! 简介 最开始我只是想把自己在浏览 GitHub 过程中,发现的有意思.高质量 ...

  5. Jmeter-测试计划元件

    打开Jmeter页面,默认显示测试计划和工作台: 1.测试计划: 用来描述一个性能测试,包含与本次性能测试所有相关的功能.也就说性能测试的所有内容是于基于一个计划的. 右键单击"测试计划&q ...

  6. java中的基本jdbc中mvc基本示例

    数据库: 包文件: Student.java 1 package com.model; 2 3 public class Student { 4 private int id; 5 private S ...

  7. 关于ng的路由的几点想法(ui-view)

    在配置路由的时候,我们可以选择ng框架自带的路由,也可以使用第三方路由插件ui-router 注意: (1)在使用angular-ui-router的时候,必须先引入angular-ui-router ...

  8. 玩转 SSH 目录

    在做一个新的项目的时候,需要重新搭建一个项目. 于是趁着这个机会把之前学的几个框架的搭建都写一写,整理一下,同时也可以给大家一些参考.何乐而不为叻. 在这个系列中, 我将使用 IntelJ IDEA ...

  9. 从面试小白走向master

    腾讯2017春招(实习生招聘)在线笔试知识点总结: 1.栈与队列(用队列实现栈) 2.排序算法(最坏情况下时间复杂度) 3.TCP协议(3次

  10. Android使用本地广播

    Android本地广播学习中一直被忽略,今天用到了,Mark一下 1.本地广播的定义和普通广播一样 例如 public class WakeTimesBroadcastReceiver extends ...