<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. postgresql生产环境三大难题

    1.逻辑复制没有高可用 2.vacuum表膨胀问题严重 3.事务ID回卷,冻结清理

  2. Maven中的元素Exclusions、modules、parent、properties以及import

    Dependencies:是可选依赖(Optional Dependencies) Exclusions:是依赖排除(Dependency Exclusions) 2.Dependencies (1) ...

  3. (0321) 路科 视频 ,讲 uvm_pkg

    loading

  4. Installing Jupyter

    https://jupyter.org/install install pip install jupyterlab config 生成配置文件 jupyter notebook --generate ...

  5. 树莓派,脚本遍历当前目录下视频文件,并用omxplayer播放

    事先准备好视频文件,文件名内包含视频尺寸信息,以方便构造 --win "x1 y1 x2 y2" 字符串. 通过 omxplayer  -i  filename   可查看视频尺寸 ...

  6. 分布式锁 -- redis

    原理 redis设置一个key和value,如果存在则获取锁失败,不存在则获取锁成功处理业务,业务处理完成后删除这条数据,可以带个失效时间. 代码 public void handleInvoice( ...

  7. SY有了不适症状吃抗过敏药试试

    有了不适症状吃抗过敏药试试 Therapy for the eyes Providing welcome relief from the effects of daily stresses on th ...

  8. 2021年RT-Thread开发者大会

    Time:2021-12-18,地点:大中华6楼喜来登酒店 主办方: RT-Thread:寓意实时线程,瑞赛德 世界有成千上万个 RTOS(Real-time operating system,实时操 ...

  9. Jquery 如何替换html字符串中标签属性值 ??

    如何利用JQuery 替换HTML字符串中的属性值呢? 如 html 字符串有很多 img标签,现在需要修改 img的src值 var html="<div style="t ...

  10. Dynamics 365 incident原生实体特点

    有以下特点: customerid字段必填,而且该字段类型是"客户".可以关联多种数据类型. 更新服务用户的姓名,会更新所有关联SR的customeridName. 关闭SR会产生 ...