引入依赖

        <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消费者与生产者代码示例的更多相关文章

  1. java基础之----java常见异常及代码示例

    概述 java中有两种错误类型,一个是Exception,一个是Error,都在java.lang包下,一般来说程序中的try...catch捕获的是Exception类型的异常,而Error类型的错 ...

  2. kafka之三:kafka java 生产消费程序demo示例

    kafka是吞吐量巨大的一个消息系统,它是用scala写的,和普通的消息的生产消费还有所不同,写了个demo程序供大家参考.kafka的安装请参考官方文档. 首先我们需要新建一个maven项目,然后在 ...

  3. Java 实现金额转换 代码示例

    金额转换,阿拉伯数字的金额转换成中国传统的形式如: (¥1011)→(壹仟零壹拾壹元整)输出. 分析: 金额转换,在开发财务相关软件时会经常用到,也是软件本地化的一个需要.一般开发公司或者团队都有相应 ...

  4. java请求登录接口代码示例

    前言 近期研究如何利用java代码如何获取其他系统中所需的数据,自己总结的方法如下: 1.工具类代码 /** * <pre> * 方法体说明:向远程接口发起请求,返回字符串类型结果 * @ ...

  5. [置顶] think in java interview-高级开发人员面试宝典代码示例

    下载资源地址为: http://download.csdn.net/detail/lifetragedy/6379755 这是think in java interview中的代码示例,包括JAVA基 ...

  6. 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 ...

  7. kafka集群和zookeeper集群的部署,kafka的java代码示例

    来自:http://doc.okbase.net/QING____/archive/19447.html 也可参考: http://blog.csdn.net/21aspnet/article/det ...

  8. 整合Kafka到Spark Streaming——代码示例和挑战

    作者Michael G. Noll是瑞士的一位工程师和研究员,效力于Verisign,是Verisign实验室的大规模数据分析基础设施(基础Hadoop)的技术主管.本文,Michael详细的演示了如 ...

  9. 第23章 java线程通信——生产者/消费者模型案例

    第23章 java线程通信--生产者/消费者模型案例 1.案例: package com.rocco; /** * 生产者消费者问题,涉及到几个类 * 第一,这个问题本身就是一个类,即主类 * 第二, ...

随机推荐

  1. FreeMark导出word文件

    1.编辑好word 2.将word模板另存为xml格式, 把需要动态生成的文字用${xxx}代替 eg: 张强 替换为:${name} 注意:图片是很长的一个base64的字符,同样替换就好 比如替换 ...

  2. Idea eclipse 快捷键版

    查找/搜索 打开搜索界面     Ctrl+H 查找类文件             Ctrl+Shift+T 最近访问上一个文件      Ctrl+Alt+ ← 最近访问下一个文件        C ...

  3. C# 简易的串口监视上位机实现

    实现上位机和下位机之间的通信,通常使用的是串口通信,接下来实现一个通过上位机和串口调试助手来完成串口通信测试. 首先创建一个WInfrom窗体应用工程文件,创建过程可参考https://www.cnb ...

  4. Spring Cloud Gateway原理

    1.使用 compile 'org.springframework.cloud:spring-cloud-starter-gateway' 2.包结构 actuate中定义了一个叫GatewayCon ...

  5. JVM简单入门

    目录 初识JVM 双亲委派机制 沙箱安全机制 Native PC计数器 方法区 栈 堆 工具分析OOM GC算法 GC算法总结 JMM 初识JVM JVM的位置:jre中包含jvm. 双亲委派机制 双 ...

  6. webug第六关:这关需要rmb购买哦

    第六关:这关需要rmb购买哦 首先登陆,tom 123456 进行抓包改包

  7. 需要登录才能下载的文件可以用Folx下载吗

    用苹果电脑的小伙伴有没有发现,有时候文件即时有下载链接也还是要先登录才能下载,那这样的文件用下载器Folx还能下载码?下面小编将在Mac系统平台上,通过一篇教程教大家利用Folx 5的密码管理来保存网 ...

  8. leetcode 33和 leetcode81

    //感想: 1.对于这两题,我真的是做到吐,这篇博客本来是昨晚准备写的,但是对于这个第二题,我真的做到头痛,实在是太尼玛的吐血了,主要是我也是头铁,非要找到那个分界点. 2.其实之前在牛客网上做过非常 ...

  9. mybatis-plus使用记录

    如何and和or: QuoteSalaryEnum salaryMax = QuoteSalaryEnum.of(memberObjectInfo.getQuoteSalaryMax()); Quot ...

  10. 详解docker部署SpringBoot及如何替换jar包

    关于docker的安装和使用,可以看看之前这两篇文章.Docker从安装部署到Hello World和Docker容器的使用和连接.这篇文章主要介绍如何在docker上部署springboot项目.关 ...