1. <dependencies>
  2. <dependency>
  3. <groupId>org.apache.kafka</groupId>
  4. <artifactId>kafka_2.13</artifactId>
  5. <version>2.7.0</version>
  6. </dependency>
  7. </dependencies>

生产者

  1. package com.test.producer;
  2.  
  3. import org.apache.kafka.clients.producer.KafkaProducer;
  4. import org.apache.kafka.clients.producer.ProducerRecord;
  5. import org.apache.kafka.common.serialization.StringSerializer;
  6.  
  7. import java.util.Properties;
  8.  
  9. public class MyProducer {
  10.  
  11. public static void main(String[] args) {
  12.  
  13. Properties properties = new Properties();
  14.  
  15. properties.put("bootstrap.servers", "localhost:9092");
  16. // ack
  17. properties.put("acks", "all");
  18. // 重试次数
  19. properties.put("retries", 1);
  20. // 批次大小
  21. properties.put("batch.size", 16384);
  22. // 等待时间
  23. properties.put("linger.ms", 1);
  24. // 缓冲区大小
  25. properties.put("buffer.memory", 33554432);
  26. // 设置数据key和value的序列化处理类
  27. properties.put("key.serializer", StringSerializer.class);
  28. properties.put("value.serializer", StringSerializer.class);
  29.  
  30. KafkaProducer<String, String> produce = new KafkaProducer<>(properties);
  31.  
  32. for (int i=0; i < 2; i++) {
  33. produce.send(new ProducerRecord<>("test","key-"+i,"value--" + i));
  34. }
  35.  
  36. produce.close();
  37.  
  38. }
  39. }

消费者

  1. package com.test.consumer;
  2.  
  3. import org.apache.kafka.clients.consumer.ConsumerConfig;
  4. import org.apache.kafka.clients.consumer.ConsumerRecord;
  5. import org.apache.kafka.clients.consumer.ConsumerRecords;
  6. import org.apache.kafka.clients.consumer.KafkaConsumer;
  7. import org.apache.kafka.common.serialization.StringDeserializer;
  8.  
  9. import java.time.Duration;
  10. import java.util.Arrays;
  11. import java.util.Properties;
  12.  
  13. public class MyConsumer {
  14.  
  15. public static void main(String[] args) {
  16.  
  17. Properties properties = new Properties();
  18.  
  19. properties.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG,"localhost:9092");
  20. // 自动提交
  21. properties.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG,true);
  22. // 提交延时
  23. properties.put(ConsumerConfig.AUTO_COMMIT_INTERVAL_MS_CONFIG,"1000");
  24. // 反序列化
  25. properties.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
  26. properties.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
  27. // 消费者组
  28. properties.put(ConsumerConfig.GROUP_ID_CONFIG,"bigdata");
  29.  
  30. // 重置消费者的offset(换组、offset过期)
  31. properties.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG,"earliest");
  32.  
  33. KafkaConsumer<String, String> consumer = new KafkaConsumer<String, String>(properties);
  34.  
  35. // 订阅主题
  36. consumer.subscribe(Arrays.asList("test"));
  37.  
  38. // 获取数据
  39. while (true){
  40. ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(100));
  41.  
  42. for(ConsumerRecord<String,String> record: records){
  43. System.out.println("key:" + record.key() + "" + ",value:" +record.value());
  44.  
  45. }
  46. }
  47.  
  48. }
  49. }

带有callback的生产者

  1. package com.test.producer;
  2.  
  3. import org.apache.kafka.clients.producer.*;
  4. import org.apache.kafka.common.serialization.StringSerializer;
  5.  
  6. import java.util.Properties;
  7.  
  8. public class CallbackProducer {
  9.  
  10. public static void main(String[] args) {
  11.  
  12. Properties properties = new Properties();
  13.  
  14. properties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,"localhost:9092");
  15. properties.put("key.serializer", StringSerializer.class);
  16. properties.put("value.serializer", StringSerializer.class);
  17.  
  18. KafkaProducer<String, String> producer = new KafkaProducer<String, String>(properties);
  19.  
  20. for (int i=0; i < 10; i++) {
  21. producer.send(new ProducerRecord<>("test","1","tt--" + i), (metadata, exception) -> {
  22. if (exception == null){
  23. System.out.println(metadata.partition() + "--" + metadata.offset()) ;
  24. } else {
  25. exception.printStackTrace();
  26. }
  27. });
  28. }
  29.  
  30. producer.close();
  31.  
  32. }
  33.  
  34. }

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. 2022NCTF

    是真的菜 开始复现把 calc 访问之后获得源码 @app.route("/calc",methods=['GET']) def calc(): ip = request.remo ...

  2. WebSocket 使用记录

    WebSocket 主要解决的问题是 后端数据更新主动像前端推送数据所需依赖<dependency> <groupId>org.springframework.boot< ...

  3. Panel容器中显示多个窗体并通过按钮实现窗体切换

    Panel容器中显示多个窗体并通过按钮实现窗体切换 在项目开发中经常会有如下需求: 主窗体formMain中有个一Panle: 在Panel内显示多个窗体,如form1,form2--,分别通过不同按 ...

  4. win10 校验MD5值

    CertUtil -hashfile C:\xxxxx\xxx.xxx MD5   // C:\xxxxx\xxx.xxx为文件路径

  5. 学习-Vue3-条件渲染

    v-if支持在 <template> 元素上使用,能和 v-else 搭配使用. v-show 不支持在 <template> 元素上使用, 也不能和 v-else 搭配使用. ...

  6. 一、mysql基础

    说明:学习视频参考尚硅谷--康师傅 第一章.数据库概述 1.为什么使用数据库?why? 持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用.大多数情况下,特别是企业级应用,数 ...

  7. 把本地项目上传到github

    一在本地项目文件内,git初始化,并add, commit cd /test/xxxdemo git init add . commit -m "inits" 二在github创建 ...

  8. R语言码农的Scala学习心得

    为了MLib,最近是铁了心要学好Spark.关注本博客的朋友应该知道我的主力语言是R,无论是训练模型还是做Elasticsearch,都是通过R脚本来操作的.之前的<通过 Spark R 操作 ...

  9. mybatis-关联查询4-多对多查询

    三张表的关联查询  

  10. disp

    str = sprintf( 'Best Cross Validation MSE = %g Best c = %g Best g = %g',bestmse,bestc,bestg); disp(s ...