<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例子的更多相关文章

  1. kafka例子程序

    //生产端 产生数据 /** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor li ...

  2. flume+kafka+hbase+ELK

    一.架构方案如下图: 二.各个组件的安装方案如下: 1).zookeeper+kafka http://www.cnblogs.com/super-d2/p/4534323.html 2)hbase ...

  3. 部分转 php kafka

    Step 1: 下载Kafka (官网地址:http://kafka.apache.org) Kafka入门经典教程 http://www.aboutyun.com/thread-12882-1-1. ...

  4. [Flume][Kafka]Flume 与 Kakfa结合例子(Kakfa 作为flume 的sink 输出到 Kafka topic)

    Flume 与 Kakfa结合例子(Kakfa 作为flume 的sink 输出到 Kafka topic) 进行准备工作: $sudo mkdir -p /flume/web_spooldir$su ...

  5. [Spark][kafka]kafka 生产者,消费者 互动例子

    [Spark][kafka]kafka 生产者,消费者 互动例子 # pwd/usr/local/kafka_2.11-0.10.0.1/bin 创建topic:# ./kafka-topics.sh ...

  6. springboot 1.5.2 集成kafka 简单例子

    添加依赖 compile("org.springframework.kafka:spring-kafka:1.1.2.RELEASE") 添加application.propert ...

  7. kafka集群配置和java编写生产者消费者操作例子

    kafka 安装 修改配置文件 java操作kafka kafka kafka的操作相对来说简单很多 安装 下载kafka http://kafka.apache.org/downloads tar ...

  8. 搞定springboot项目连接远程服务器上kafka遇到的坑以及完整的例子

    版本 springboot 2.1.5.RELEASE kafka 2.2 遇到的坑 用最新的springboot就要用最新的kafka版本! 当我启动云服务器上的zk后,再启动kafka后台日志也没 ...

  9. kafka 0.11 spark 2.11 streaming例子

    """ Counts words in UTF8 encoded, '\n' delimited text received from the network every ...

  10. Java实现Kafka的生产者和消费者例子

    Kafka的结构与RabbitMQ类似,消息生产者向Kafka服务器发送消息,Kafka接收消息后,再投递给消费者.生产者的消费会被发送到Topic中,Topic中保存着各类数据,每一条数据都使用键. ...

随机推荐

  1. GIT Authentication failed for错误问题处理

    1. Settings ==> Developer settings ==> Personal access tokens ==> Generate new token   生成新的 ...

  2. @dynamicMemberLookup(动态成员查找)

    动态成员查找是 Swift 中的一项功能特性,可提高与 Python 或 Javascript 等动态语言的互操作性.它允许动态成员查找调用看起来像访问类型属性的常规调用: let people = ...

  3. 虚拟机redis无法连接

    1.cp redis.conf /etc/ 2.vi /etc/redis.conf 3.设置 Redis 可以后台运行 daemonize yes 4.关闭 redis 保护模式,使得可以远程连接 ...

  4. vue2源码学习2vuex&vue-router

    1.vue插件编写 插件可以实现对象vue的拓展,比如新增全局属性/方法,添加实例方法,使用mixin混入其他配置项等等.编写插件必须要实现 install 方法,当调用Vue.use()使用插件时, ...

  5. Jenkins+maven+gitlab+harbor+Rancher

  6. TCP通信实现两个主机之间的信息交互

    TCP通信概述TCP协议用来控制两个网络设备之间的点对点通信,两端设备按作用分为客户端和服务端.服务端为客户端提供服务,通常等待客户端的请求信息,有客户端请求到达之后,及时提供服务和返回响应消息:客户 ...

  7. 关于github的自动化检测

    github 中的 Some checks were not successful什么意思呢?   在 GitHub 上,当您向存储库提交拉取请求时,如果存在自动化的检查(例如CI/CD)或在 pul ...

  8. IDEA/webstorm 安装插件重启/迁移后插件丢失

    使用toolbox调整了IDE的安装位置, 重启后发现插件全部丢失, 之前确实破解过, 但是现在是正版的 直接说一下我的解决方案吧: help -> Edit Custom VM Options ...

  9. 【Windows】IP 地址变为 169.254.x.x 的解决方法

    最近每次开机 IP 地址都会自动跳至 169.254.x.x 段,连接不上网络,设置了固定 IP 也会跳段.因此找到以下解决方法: 『IP地址变成169.254.x.x 和固定ip两个IP地址的解决办 ...

  10. windows下rabbitmq启动报错--distribution port 25672 in use by another node: rabbit@DESKTOP-LLPGVVE

    最近公司有需求需要用到rabbitmq,因为之前习惯用的都是activemq,所以要临时学习一下,捣鼓这个rabbitmq.想着先在本地捣鼓测试一下,然后按照这个博主分享的安装方式进行安装. http ...