kafka编程【java】编写生产者

半城伤御伤魂 提交于 2020-03-06 00:09:49

一、添加依赖

   <dependency>
      <groupId>org.apache.kafka</groupId>
      <artifactId>kafka-clients</artifactId>
      <version>0.11.0.1</version>
    </dependency>

二、编程

2.1 案例一

package com.bigdata.Kafka;

import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.Producer;
import org.apache.kafka.clients.producer.ProducerRecord;

import java.util.Properties;

public class ProducerJavaDemo {

    public static void main(String[] args) {

        //1.构建properties对象
        Properties props = new Properties();
        //1.1设置配置参数
        //给定储存数据的kafka的broker集群地址
        props.put("bootstrap.servers","superman-bigdata.com:9092,superman-bigdata.com:9093,superman-bigdata.com:9094,superman-bigdata.com:9095");
        //1.2消息传输的可靠性保证 acks
        //acks 一共有三个值-1,0,1
        //0:不等待任何副本返回信息 1:等待leader副本接收到之后再发送下一条数据 -1:等待所有副本接收到之后再发送下一条数据
        props.put("acks","1");
        //1.3如果发送失败,可以重新发送
        props.put("retries","0");
        //1.4批量发送
        props.put("batch.size","16384"); //16k
        //1.5批次产生的时间间隔,一般和batch.size连用
        props.put("linger.ms","1");
        //1.6缓冲区的大小
        props.put("buffer.memory","33554432");
        //1.7key和value的序列化
        props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
        props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");

        //2.构建KafkaProducer对象
        Producer<String,String> producer  =  new KafkaProducer<>(props);

        //3.调用KafkaProducer的send方法,向kafka的集群发送数据
        String topic = "beifeng0";
        String key = "9999";
        String value = "hello kafka";
        ProducerRecord<String,String>  record  = new ProducerRecord<>(topic,key,value);
        producer.send(record);

        //4.关闭KafkaProducer对象
        producer.close();
    }
}

1.2 案例二

import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.Producer;
import org.apache.kafka.clients.producer.ProducerRecord;

import java.util.Properties;

public class kafkaproduct {
    public static void main(String[] args) {
        //1.构建设置对象
        Properties p = new Properties();
        //1.1设置配置参数
        p.put("bootstrap.servers","liu7.com:9092,liu7.com:9093,liu7.com:9094,liu7.com:9095");
        p.put("acks","1");
        p.put("retries","0");
        p.put("batch.size","16384");
        p.put("linger.ms","1");
        p.put("buffer.memory","33554432");
        p.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
        p.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");
        Producer<String,String> producer  =  new KafkaProducer(p);
/*        String topic = "liujiwei";
        String key = "9999";
        String value = "hello kafka";
        ProducerRecord<String,String> record  = new ProducerRecord(topic,key,value);
        producer.send(record);*/
        for (int i=1;i<100;i++){
            String topic = "liujiwei";
            String key = String.valueOf(i);
            String value = String.valueOf(i);
            ProducerRecord<String,String> record  = new ProducerRecord(topic,key,value);
            producer.send(record);
        }
        //4.关闭KafkaProducer对象
        producer.close();
    }
}

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!