kafka java使用
首先添加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使用的更多相关文章
- [Kafka] - Kafka Java Consumer实现(一)
Kafka提供了两种Consumer API,分别是:High Level Consumer API 和 Lower Level Consumer API(Simple Consumer API) H ...
- 关于Kafka java consumer管理TCP连接的讨论
本篇是<关于Kafka producer管理TCP连接的讨论>的续篇,主要讨论Kafka java consumer是如何管理TCP连接.实际上,这两篇大部分的内容是相同的,即consum ...
- [Kafka] - Kafka Java Consumer实现(二)
Kafka提供了两种Consumer API,分别是:High Level Consumer API 和 Lower Level Consumer API(Simple Consumer API) H ...
- Kafka笔记整理(二):Kafka Java API使用
下面的测试代码使用的都是下面的topic: $ kafka-topics.sh --describe hadoop --zookeeper uplooking01:,uplooking02:,uplo ...
- kafka java API的使用
Kafka包含四种核心的API: 1.Producer API支持应用将数据流发送到Kafka集群的主题 2.Consumer API支持应用从Kafka集群的主题中读取数据流 3.Streams A ...
- 大数据学习day31------spark11-------1. Redis的安装和启动,2 redis客户端 3.Redis的数据类型 4. kafka(安装和常用命令)5.kafka java客户端
1. Redis Redis是目前一个非常优秀的key-value存储系统(内存的NoSQL数据库).和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list ...
- kafka java实例
生产者 package com; import java.util.Properties; import java.util.concurrent.TimeUnit; import kafka.jav ...
- kafka java代码实现消费者
public class KafkaConsumer { public static void main(String[] args) { Properties props = new Propert ...
- kafka java客户端编程
kafka_2.10-0.8.1.1 maven <dependencies> <dependency> <groupId>org.apache.kafka< ...
随机推荐
- Windows7 java-jdk1.7安装及设置变量过程
jdk安装的次数较少,容易忘记,这里专门记录一下. 1:jdk1.7网上到处都是可以随便下载一个.然后进行安装,不过在安装过程中把安装路径单独记忆一下,在配置变量的时候会用到. 2:安装完JDK后配置 ...
- 用Qemu搭建aarch32学习环境
作者信息 作者: 彭东林 邮箱: pengdonglin137@163.com QQ: 405728433 软件平台 主机: Ubuntu14.04 64位版本 模拟器:Qemu-2.8.0 Linu ...
- 纯Jquery前端分页
---恢复内容开始--- 由于之前自己做过jquery分页,就是调用jni接口时,只能用前台分页解决显示问题.最近看到有人提这样的问题:一个请求传过来上万个数据怎么办?于是萌生了写这篇博客的想法. 效 ...
- efwplusUI框架,支持在Liunx服务器运行的Web开发框架,C#开发
efwplusUI开发框架 这是一个简单Web框架,前台采用amaze UI +requireJS+handlebarsJS,后台采用WebApi+MongoDB,用Nginx做Http服务器,随着. ...
- sql 两种分页offset和row_number简单分析
新建临时表字段id,向临时表里插入1,2,3,4,5,6 if object_id('tempdb..#test') is not null drop table #test create table ...
- 开启Tomcat远程调试(转)
原文链接:http://www.07net01.com/2016/11/1721293.html 如何远程调试tomcat 一,linux环境下 1. 服防火墙打开8000端口,允许外网访问:2. 修 ...
- js实现多行图片点击(自动)左右无缝轮播特效
/*效果图*/ HTML: <div class="scroll"> <div class="picbox"> ...
- shell脚本编写步骤及其常用命令和符号
1,什么是Shell Shell 是kernel的一个外壳,是一个命令解析器,负责用户与内核的交互.2,Shell脚本 Shell脚本类似于批处理,可以方便的执行大量命令.3,编写sh ...
- Yum -userguide
Introduction Yum(Yellow dog Updater, Modified) is an automatic updater and package installer/remover ...
- [认证授权] 3.基于OAuth2的认证(译)
OAuth 2.0 规范定义了一个授权(delegation)协议,对于使用Web的应用程序和API在网络上传递授权决策非常有用.OAuth被用在各钟各样的应用程序中,包括提供用户认证的机制.这导致许 ...