kafka java_kafka java使用

本文详细介绍了如何在Java项目中使用Kafka,包括添加Maven依赖,Kafka Consumer和Producer的两种实现方式:源码与注解方式。通过示例代码展示了如何初始化和操作Kafka消费者和生产者,帮助读者深入理解Kafka Java API的使用。
摘要由CSDN通过智能技术生成

首先添加maven依赖

Kafka

org.apache.kafka

kafka_2.10

0.8.2.2

Spring

org.springframework

spring-context

4.1.4.RELEASE

org.springframework

spring-beans

4.1.4.RELEASE

org.springframework

spring-core

4.1.4.RELEASE

Kafka API

com.zc

kafka-api-core

0.1

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:

配置

init-method="initialize">

代码:

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:

配置

init-method="initialize">

代码:

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] - Kafka Java Consumer实现(一)

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

关于Kafka java consumer管理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 ...

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 org.apache.kafka< ...

Kafka Java API获取非compacted topic总消息数

目前Kafka并没有提供直接的工具来帮助我们获取某个topic的当前总消息数,需要我们自行写程序来实现.下列代码可以实现这一功能,特此记录一下: /** * 获取某个topic的当前消息数 * Jav ...

随机推荐

为什么占位符可以防止sql注入?

先看下面用占位符来查询的一句话 String sql = "select * from administrator where adminname=?"; psm = con.pr ...

java容器简要概述

java中集合框架的概述 java集合类主要用于保存对象的. 常用的集合对象: Colletion接口,Collection接口是集合中的顶层容器,表示的是一组对象,它的下面有两个子接口List接口和 ...

ytu 1938&colon;首字母变大写(水题)

首字母变大写 Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 110  Solved: 43[Submit][Status][Web Board] Desc ...

Joy of Programming&colon; Understanding Bit-fields in C

转:http://www.linuxforu.com/2012/01/joy-of-programming-understanding-bit-fields-c/ By S.G. Ganesh on ...

css3实现梯形三角

近期移动端项目中,图片很多 移动端尽量少图片,以便提升加载速度!这时候css3可以大放光芒比如梯形的背景图 --------------------------------- ------------ ...

Quick Sort&lpar;Java&rpar;

public static void main(String[] args) { Scanner input = new Scanner(System.in); int n = input.nextI ...

&num;WEB安全基础 &colon; HTTP协议 &vert; 0x13 不安全的HTTP

HTTP作为一个大规模使用的网络协议就真的安全了吗? 我们知道互联网为什么叫互联网,你可以在任何地方都可以与之相连,所以在这些可以连接的点上都可以获取互联网的部分信息. 那么HTTP通信时有什么缺点吗 ...

基于Docker的Mysql主从复制搭建

来源:https://www.cnblogs.com/songwenjie/p/9371422.html?tdsourcetag=s_pctim_aiomsg   为什么基于Docker搭建? 资源有 ...

UEditor js动态创建和textarea中渲染【原】

UEditor动态创建和textarea中渲染 http://ueditor.baidu.com/website/examples/textareaDemo.html ...

windows下编写shell脚本执行错误

在 windows 下,换行符是 \r\n,在linux下,换行符是 \n.如果你在IDEA里写sh脚本,可以手动设置脚本的换行符为 \n,如果你用notepad++写脚本,可以显示所有字符,以便明确 ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值