kafka例子
- <dependencies>
- <dependency>
- <groupId>org.apache.kafka</groupId>
- <artifactId>kafka_2.13</artifactId>
- <version>2.7.0</version>
- </dependency>
- </dependencies>
生产者
- package com.test.producer;
- import org.apache.kafka.clients.producer.KafkaProducer;
- import org.apache.kafka.clients.producer.ProducerRecord;
- import org.apache.kafka.common.serialization.StringSerializer;
- import java.util.Properties;
- public class MyProducer {
- public static void main(String[] args) {
- Properties properties = new Properties();
- properties.put("bootstrap.servers", "localhost:9092");
- // ack
- properties.put("acks", "all");
- // 重试次数
- properties.put("retries", 1);
- // 批次大小
- properties.put("batch.size", 16384);
- // 等待时间
- properties.put("linger.ms", 1);
- // 缓冲区大小
- properties.put("buffer.memory", 33554432);
- // 设置数据key和value的序列化处理类
- properties.put("key.serializer", StringSerializer.class);
- properties.put("value.serializer", StringSerializer.class);
- KafkaProducer<String, String> produce = new KafkaProducer<>(properties);
- for (int i=0; i < 2; i++) {
- produce.send(new ProducerRecord<>("test","key-"+i,"value--" + i));
- }
- produce.close();
- }
- }
消费者
- package com.test.consumer;
- import org.apache.kafka.clients.consumer.ConsumerConfig;
- import org.apache.kafka.clients.consumer.ConsumerRecord;
- import org.apache.kafka.clients.consumer.ConsumerRecords;
- import org.apache.kafka.clients.consumer.KafkaConsumer;
- import org.apache.kafka.common.serialization.StringDeserializer;
- import java.time.Duration;
- import java.util.Arrays;
- import java.util.Properties;
- public class MyConsumer {
- public static void main(String[] args) {
- Properties properties = new Properties();
- properties.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG,"localhost:9092");
- // 自动提交
- properties.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG,true);
- // 提交延时
- properties.put(ConsumerConfig.AUTO_COMMIT_INTERVAL_MS_CONFIG,"1000");
- // 反序列化
- properties.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
- properties.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
- // 消费者组
- properties.put(ConsumerConfig.GROUP_ID_CONFIG,"bigdata");
- // 重置消费者的offset(换组、offset过期)
- properties.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG,"earliest");
- KafkaConsumer<String, String> consumer = new KafkaConsumer<String, String>(properties);
- // 订阅主题
- consumer.subscribe(Arrays.asList("test"));
- // 获取数据
- while (true){
- ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(100));
- for(ConsumerRecord<String,String> record: records){
- System.out.println("key:" + record.key() + "" + ",value:" +record.value());
- }
- }
- }
- }
带有callback的生产者
- package com.test.producer;
- import org.apache.kafka.clients.producer.*;
- import org.apache.kafka.common.serialization.StringSerializer;
- import java.util.Properties;
- public class CallbackProducer {
- public static void main(String[] args) {
- Properties properties = new Properties();
- properties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,"localhost:9092");
- properties.put("key.serializer", StringSerializer.class);
- properties.put("value.serializer", StringSerializer.class);
- KafkaProducer<String, String> producer = new KafkaProducer<String, String>(properties);
- for (int i=0; i < 10; i++) {
- producer.send(new ProducerRecord<>("test","1","tt--" + i), (metadata, exception) -> {
- if (exception == null){
- System.out.println(metadata.partition() + "--" + metadata.offset()) ;
- } else {
- exception.printStackTrace();
- }
- });
- }
- producer.close();
- }
- }
kafka例子的更多相关文章
- kafka例子程序
//生产端 产生数据 /** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor li ...
- flume+kafka+hbase+ELK
一.架构方案如下图: 二.各个组件的安装方案如下: 1).zookeeper+kafka http://www.cnblogs.com/super-d2/p/4534323.html 2)hbase ...
- 部分转 php kafka
Step 1: 下载Kafka (官网地址:http://kafka.apache.org) Kafka入门经典教程 http://www.aboutyun.com/thread-12882-1-1. ...
- [Flume][Kafka]Flume 与 Kakfa结合例子(Kakfa 作为flume 的sink 输出到 Kafka topic)
Flume 与 Kakfa结合例子(Kakfa 作为flume 的sink 输出到 Kafka topic) 进行准备工作: $sudo mkdir -p /flume/web_spooldir$su ...
- [Spark][kafka]kafka 生产者,消费者 互动例子
[Spark][kafka]kafka 生产者,消费者 互动例子 # pwd/usr/local/kafka_2.11-0.10.0.1/bin 创建topic:# ./kafka-topics.sh ...
- springboot 1.5.2 集成kafka 简单例子
添加依赖 compile("org.springframework.kafka:spring-kafka:1.1.2.RELEASE") 添加application.propert ...
- kafka集群配置和java编写生产者消费者操作例子
kafka 安装 修改配置文件 java操作kafka kafka kafka的操作相对来说简单很多 安装 下载kafka http://kafka.apache.org/downloads tar ...
- 搞定springboot项目连接远程服务器上kafka遇到的坑以及完整的例子
版本 springboot 2.1.5.RELEASE kafka 2.2 遇到的坑 用最新的springboot就要用最新的kafka版本! 当我启动云服务器上的zk后,再启动kafka后台日志也没 ...
- kafka 0.11 spark 2.11 streaming例子
""" Counts words in UTF8 encoded, '\n' delimited text received from the network every ...
- Java实现Kafka的生产者和消费者例子
Kafka的结构与RabbitMQ类似,消息生产者向Kafka服务器发送消息,Kafka接收消息后,再投递给消费者.生产者的消费会被发送到Topic中,Topic中保存着各类数据,每一条数据都使用键. ...
随机推荐
- 2022NCTF
是真的菜 开始复现把 calc 访问之后获得源码 @app.route("/calc",methods=['GET']) def calc(): ip = request.remo ...
- WebSocket 使用记录
WebSocket 主要解决的问题是 后端数据更新主动像前端推送数据所需依赖<dependency> <groupId>org.springframework.boot< ...
- Panel容器中显示多个窗体并通过按钮实现窗体切换
Panel容器中显示多个窗体并通过按钮实现窗体切换 在项目开发中经常会有如下需求: 主窗体formMain中有个一Panle: 在Panel内显示多个窗体,如form1,form2--,分别通过不同按 ...
- win10 校验MD5值
CertUtil -hashfile C:\xxxxx\xxx.xxx MD5 // C:\xxxxx\xxx.xxx为文件路径
- 学习-Vue3-条件渲染
v-if支持在 <template> 元素上使用,能和 v-else 搭配使用. v-show 不支持在 <template> 元素上使用, 也不能和 v-else 搭配使用. ...
- 一、mysql基础
说明:学习视频参考尚硅谷--康师傅 第一章.数据库概述 1.为什么使用数据库?why? 持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用.大多数情况下,特别是企业级应用,数 ...
- 把本地项目上传到github
一在本地项目文件内,git初始化,并add, commit cd /test/xxxdemo git init add . commit -m "inits" 二在github创建 ...
- R语言码农的Scala学习心得
为了MLib,最近是铁了心要学好Spark.关注本博客的朋友应该知道我的主力语言是R,无论是训练模型还是做Elasticsearch,都是通过R脚本来操作的.之前的<通过 Spark R 操作 ...
- mybatis-关联查询4-多对多查询
三张表的关联查询
- disp
str = sprintf( 'Best Cross Validation MSE = %g Best c = %g Best g = %g',bestmse,bestc,bestg); disp(s ...