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< ...
随机推荐
- ios 个推推送集成
个推推送总结: 个推第三方平台官网地址:http://www.getui.com/cn/index.html 首先去官网注册账号,创建应用,应用的配置信息,创建APNs推送证书上传 P12证书(开发对 ...
- 配置远程服务器,使hyper-v能够连接网络
一般远程服务器只有一个网卡和IP,如果你要在服务器上装虚拟机,那么要使虚拟机能够连接网络,必须要创建虚拟交换机. 如果创建虚拟交换机并桥接,那么就会改变IP地址,改变IP地址,就连接不上远程服务器.造 ...
- windows phone 8.1开发:(消息弹出框)强大的ContentDialog
原文出自:http://www.bcmeng.com/contentdialog/ 在应用开发中我们必不可少的会使用到消息框,windows phone8中的messagebox在windows ph ...
- python的tkinter版本不匹配问题:RuntimeError: test:tk.h version (8.4) doesn't match libtk.a version (8.5)
Traceback (most recent call last): File "/root/CodeWorkPace/test/TCPClient.py", line 20, i ...
- malloc函数及用法
动态存储分配在数组一章中,曾介绍过数组的长度是预先定义好的,在整个程序中固定不变.C语言中不允许动态数组类型.例如:int n;scanf("%d",&n);int a[n ...
- CrawlScript脚本语言实现网络爬虫
前段时间我们学习了几种爬虫技术,我们来回顾一下,webCollector,htmlParser,Jsoup,各有优劣,但是如果能灵活运用,其实都是很不错的.那么,今天呢,我们来学习一种脚本语言,这是一 ...
- C# 索引同时含有数字和字符串的集合 同时具备IList和IDictionary的特点
同时具备IList和IDictionary的特点的集合 [Serializable] public class MyCollection:IList { private readonly Dictio ...
- 无线接收信号强度(RSSI)那些事儿
本文由嵌入式企鹅圈原创团队成员黄鑫供稿. 本文所述的原理适用于所有无线传输技术,只是用蓝牙来举例.应该说,嵌入式企鹅圈更加偏重于嵌入式和物联网.安卓技术原理方面的知识分享和传播,其次才是实践,尽管很多 ...
- Python之路-字符编码&数据类型补充
作业 三级菜单程序 menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{ }, '网易':{ }, 'google':{ } }, '中关村':{ '爱奇艺':{}, '汽车 ...
- Python之路-Linux命令基础(5)
作业一:nginx服务 二进制安装nginx包 1.使用网络yum源 2.使用yum安装epel-release扩展源 [root@localhost html]# yum install epel- ...