kafka-java消费者与生产者代码示例
引入依赖
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka_2.11</artifactId>
</dependency>
消费者示例ConsumerMain.java
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.apache.kafka.clients.consumer.ConsumerRecords;
import org.apache.kafka.clients.consumer.KafkaConsumer; public class ConsumerMain { public final static String TOPIC = "product_logs_test"; public static void main(String[] args) {
Properties props = new Properties();
//集群地址,多个地址用","分隔
props.put("bootstrap.servers", "masterx1:9092,masterx2:9092,masterx3:9092");
//设置消费者的group id
props.put("group.id", "group_test");
//如果为真,consumer所消费消息的offset将会自动的同步到zookeeper。如果消费者死掉时,由新的consumer使用继续接替
props.put("enable.auto.commit", "true");
//consumer向zookeeper提交offset的频率
props.put("auto.commit.interval.ms", "1000");
props.put("session.timeout.ms", "30000");
//反序列化
props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);
List<String> topics = new ArrayList<>();
topics.add(TOPIC);
consumer.subscribe(topics);
while(true) {
ConsumerRecords<String,String> consumerRecords = consumer.poll(100);
for(ConsumerRecord<String,String> consumerRecord : consumerRecords){
try {
String topic = consumerRecord.topic();
System.out.println(topic);
} catch (Exception e) {
e.printStackTrace();
}
}
} }
}
生产者示例ProviderMain.java
import java.util.Properties;
import java.util.concurrent.Future;
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerRecord;
import org.apache.kafka.clients.producer.RecordMetadata; import net.sf.json.JSONObject; public class ProviderMain { public final static String TOPIC = "product_logs_test"; public static void main(String[] args) {
try {
Properties props = new Properties();
//集群地址,多个地址用","分隔
props.put("bootstrap.servers", "masterx1:9092,masterx2:9092,masterx3:9092");
props.put("session.timeout.ms", "30000");
//序列化
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer"); KafkaProducer<String, String> producer = new KafkaProducer<>(props);
JSONObject data = new JSONObject();
data.put("name", "TheoryDance");
data.put("fromWhere", "ProductLogTest");
data.put("time", "2020-04-16 16:12:00"); ProducerRecord<String, String> record = new ProducerRecord<>(TOPIC, data.toString());
Future<RecordMetadata> future = producer.send(record);
System.out.println(future.get());
producer.close();
} catch (Exception e) {
e.printStackTrace();
}
} }
如果需要通过logstash进行消费,示例logstash-kafka.conf,各种写法,参考logstash的官方文档
input{
kafka {
topics => ["product_logs_test"]
bootstrap_servers => "192.168.1.xxx:9092"
codec => "json"
group_id => "group_test"
}
} filter { } output {
elasticsearch {
hosts => ["https://192.168.1.xx1:9200","https://192.168.1.xx2:9200","https://192.168.1.xx3:9200"]
index => "product_logs_test"
user => "your_passport"
password => "your_pwd"
cacert => "/usr/xxxx.../CloudSearchService.cer"使用华为云CSS的证数
}
}
示例logstash-simple.conf
input{
file {
path => "/data/tmp/*"
type => "file"
codec => "json"
start_position => "beginning"
}
} filter { } output {
elasticsearch {
hosts => ["https://192.168.1.xx1:9200","https://192.168.1.xx2:9200","https://192.168.1.xx3:9200"]
index => "product_logs_file"
user => "your_passport"
password => "your_pwd"
cacert => "/usr/xxxx.../CloudSearchService.cer"使用华为云CSS的证数
}
}
kafka-java消费者与生产者代码示例的更多相关文章
- java基础之----java常见异常及代码示例
概述 java中有两种错误类型,一个是Exception,一个是Error,都在java.lang包下,一般来说程序中的try...catch捕获的是Exception类型的异常,而Error类型的错 ...
- kafka之三:kafka java 生产消费程序demo示例
kafka是吞吐量巨大的一个消息系统,它是用scala写的,和普通的消息的生产消费还有所不同,写了个demo程序供大家参考.kafka的安装请参考官方文档. 首先我们需要新建一个maven项目,然后在 ...
- Java 实现金额转换 代码示例
金额转换,阿拉伯数字的金额转换成中国传统的形式如: (¥1011)→(壹仟零壹拾壹元整)输出. 分析: 金额转换,在开发财务相关软件时会经常用到,也是软件本地化的一个需要.一般开发公司或者团队都有相应 ...
- java请求登录接口代码示例
前言 近期研究如何利用java代码如何获取其他系统中所需的数据,自己总结的方法如下: 1.工具类代码 /** * <pre> * 方法体说明:向远程接口发起请求,返回字符串类型结果 * @ ...
- [置顶] think in java interview-高级开发人员面试宝典代码示例
下载资源地址为: http://download.csdn.net/detail/lifetragedy/6379755 这是think in java interview中的代码示例,包括JAVA基 ...
- java实现Kafka的消费者示例
使用java实现Kafka的消费者 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 3 ...
- kafka集群和zookeeper集群的部署,kafka的java代码示例
来自:http://doc.okbase.net/QING____/archive/19447.html 也可参考: http://blog.csdn.net/21aspnet/article/det ...
- 整合Kafka到Spark Streaming——代码示例和挑战
作者Michael G. Noll是瑞士的一位工程师和研究员,效力于Verisign,是Verisign实验室的大规模数据分析基础设施(基础Hadoop)的技术主管.本文,Michael详细的演示了如 ...
- 第23章 java线程通信——生产者/消费者模型案例
第23章 java线程通信--生产者/消费者模型案例 1.案例: package com.rocco; /** * 生产者消费者问题,涉及到几个类 * 第一,这个问题本身就是一个类,即主类 * 第二, ...
随机推荐
- sqlilab less28 less28a
less-28 less-28a 二者相差不大 单引号小括号包裹,黑名单过滤--,#,空格,union空格select(不区分大小写) less-28的黑名单 less-28a的黑名单 %a0,不被 ...
- 来吧,展示!SpringBoot OSS 整合全过程,没见过比这更详细的了
前言 阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量.安全.低成本.高可靠的云存储服务.其数据设计持久性不低于 99.9999999999%(12 ...
- 解决Tuxera NTFS for Mac软件安装问题
在听到小凡的电话说"Tuxera NTFS for Mac软件安装失败,怎么办"的时候,小编心里真像有一万头草泥马在奔腾--苹果软件还能安装失败!? 挥手把一万头草泥马赶走,脑补着 ...
- 头秃了,使用@AutoConfigureBefore指定配置类顺序竟没生效?
持续原创输出,点击上方蓝字关注我 前言 日常工作中对于Spring Boot 提供的一些启动器可能已经足够使用了,但是不可避免的需要自定义启动器,比如整合一个陌生的组件,也想要达到开箱即用的效果. 在 ...
- 【PUPPETEER】初探之元素获取(二)
一.涉及的知识点 如何使用css selector 常用元素获取 $ 元素选择 type (api 输入) click (api 点击) 二.学习网址 https://github.com/Googl ...
- Shamir秘密共享方案 (Python)
Shamir's Secret Sharing scheme is an important cryptographic algorithm that allows private informati ...
- Netty源码分析之ByteBuf(二)—内存分配器ByteBufAllocator
Netty中的内存分配是基于ByteBufAllocator这个接口实现的,通过对它的具体实现,可以用来分配我们之前描述过的任意类型的BytebBuf实例:我们先看一下ByteBufAllocator ...
- 第四章:动态规划I
4.1背包问题 动态规划的核心:如何构造一个高效的备忘录,提高整个问题求解的效率. 4.2最大子数组问题II
- 程序媛数据报告:近三年增长至70%,平均月薪1.54W,女性程序媛并不是特殊物种
- VM15 Ubuntu18.04下固定IP
输入su 进入root用户 为下面修改文件内容提供权限 1.查看自己网卡名称:输入命令: ifconfig -a 或者 ip link 或者 ip addr 所以我的网卡名称是:ens33 2. 然后 ...