初识kafka 之 吞吐量控制
buffer.memory 缓冲区大小,默认 32M
properties.put(ProducerConfig.BUFFER_MEMORY_CONFIG,33554432);
batch.size 批次大小,默认16k
properties.put(ProducerConfig.BATCH_SIZE_CONFIG,16384);
linger.ms 等待时间,一般为1到100ms,默认0。
properties.put(ProducerConfig.LINGER_MS_CONFIG,1);
compression.type 压缩类型,默认 none,可配置值 gzip、snappy、lz4 和 zstd
properties.put(ProducerConfig.COMPRESSION_TYPE_CONFIG,"snappy");
示例
package com.lzh.kafka; import org.apache.kafka.clients.producer.*; import org.apache.kafka.common.serialization.StringSerializer; import java.util.Properties; import java.util.concurrent.ExecutionException; // 本地idea通过kafka发送消息 public class CustomProducer { public static void main(String[] args) throws ExecutionException, InterruptedException { // 1.配置 Properties properties = new Properties(); // 连接集群 // 给kafka对象添加配置信息 bootstrap.servers // 生产者连接集群所需的 broker 地址清单 properties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG,"bigdata01:9092,bigdata02:9092"); // 指定发送消息的key和value的序列化类型。一定要写全类名。 // key,value序列化 key.serializer,value.serializer // key序列化 // 全类名与下等价: properties.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG,"org.apache.kafka.common.serialization.StringSerializer"); properties.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class.getName()); // value序列化 properties.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG,StringSerializer.class.getName()); // buffer.memory 缓冲区大小,默认 32M properties.put(ProducerConfig.BUFFER_MEMORY_CONFIG,33554432); // batch.size 批次大小,默认16k properties.put(ProducerConfig.BATCH_SIZE_CONFIG,16384); // linger.ms 等待时间,一般为1到100ms,默认0。 properties.put(ProducerConfig.LINGER_MS_CONFIG,1); // compression.type 压缩类型,默认 none,可配置值 gzip、snappy、lz4 和 zstd properties.put(ProducerConfig.COMPRESSION_TYPE_CONFIG,"snappy"); // 2.创建 kafka 生产者对象 KafkaProducer<String, String> kafkaProducer = new KafkaProducer<String, String>(properties); // 3.发送数据 // 调用 send 方法,发送消息 for (int i = 1; i < 5; i++) { // 异步发送,无回调函数 if (i == 1) { kafkaProducer.send(new ProducerRecord<String, String>("Mytopic","异步发送,无回调函数\n开始报数:" )); // 无回调函数 } // 异步发送,有回调函数 kafkaProducer.send(new ProducerRecord<String, String>("Mytopic", "" + i), new Callback() { // 有回调函数 public void onCompletion(RecordMetadata recordMetadata, Exception e) { if (e == null) { System.out.println("主题"+ recordMetadata.topic() +"已异步发送消息到"+ recordMetadata.partition() +"分区"); } } }); } // 同步发送,无回调函数 get() kafkaProducer.send(new ProducerRecord<String, String>("Mytopic","同步发送,无回调函数" )).get(); // 无回调函数 // 同步发送,有回调函数 get() kafkaProducer.send(new ProducerRecord<String, String>("Mytopic", "同步发送,有回调函数"), new Callback() { public void onCompletion(RecordMetadata recordMetadata, Exception e) { if (e == null) { System.out.println("主题"+ recordMetadata.topic() +"已同步发送消息到"+ recordMetadata.partition() +"分区"); } } }).get(); // 4.关闭资源 kafkaProducer.close(); } }
世风之狡诈多端,到底忠厚人颠扑不破;
末俗以繁华相尚,终觉冷淡处趣味弥长。
posted on 2022-04-14 15:58 Simple-Sir 阅读(201) 评论(0) 编辑 收藏 举报