java 访问kafka

1 添加maven依赖

        
            org.apache.kafka
            kafka_2.12
            2.1.1
        

2 创建消息生产者

import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

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

public class MyKafkaClient {

    private static MyKafkaClient instance;
    private static final Properties properties = new Properties();
    KafkaProducer producer;
    static {
        properties.put("bootstrap.servers","localhost:9092");
        properties.put("key.serializer","org.apache.kafka.common.serialization.StringSerializer");
        properties.put("value.serializer","org.apache.kafka.common.serialization.StringSerializer");
        properties.put("max.request.size","10485760");
        properties.put("batch.size","163840");
        properties.put("buffer.memory","163840");
        properties.put("max.block.ms","500");
        properties.put("retries","3");
        properties.put("acks","1");
    }

    private MyKafkaClient(){
         producer = new KafkaProducer(properties);

    }

    public static MyKafkaClient getInstance(){
        if(null == instance){
            instance = new MyKafkaClient();
        }
        return instance;
    }

    public void sendMessage(Map msg) throws Exception{
        for (Map.Entry entry : msg.entrySet()) {
            String topic = entry.getKey();
            String message = entry.getValue();
            ProducerRecord record = new ProducerRecord(topic,"myTest",message);
            // 发送
            try {
                producer.send(record);
                System.err.println("====================发送消息成功..................");

            }catch (Exception e){
                System.err.println("====================发送消息失败..................");
                e.printStackTrace();
            }
        }
        producer.flush();
        producer.close();

    }



    public String getMessageByTopic(String topic){
       return null;
    }
    public static void main(String[] args) throws Exception{
        HashMap hashMap = new HashMap<>();
        hashMap.put("test","this is my message 13");
        MyKafkaClient instance = MyKafkaClient.getInstance();

        instance.sendMessage(hashMap);
    }

}

3、创建消息消费者

import java.util.Arrays;
import java.util.Properties;

import org.apache.commons.lang3.StringUtils;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.apache.kafka.clients.consumer.ConsumerRecords;
import org.apache.kafka.clients.consumer.KafkaConsumer;


public class MyKafkaConsumer {
    private static  MyKafkaConsumer instance;

    private KafkaConsumer consumer;
    private static final Properties properties = new Properties();
    static {
        properties.put("bootstrap.servers","localhost:9092");
        properties.put("group.id","test12");
        properties.put("session.timeout.ms","30000");
        properties.put("enable.auto.commit", "true");
        properties.put("auto.commit.interval.ms", "1000");
        properties.put("key.deserializer","org.apache.kafka.common.serialization.StringDeserializer");
        properties.put("value.deserializer","org.apache.kafka.common.serialization.StringDeserializer");

    }
    private MyKafkaConsumer(){
         consumer = new KafkaConsumer<>(properties);
         consumer.subscribe(Arrays.asList("test"));

    }

    public static MyKafkaConsumer getInstance(){
        if(null == instance){
            instance = new MyKafkaConsumer();
        }
        return instance;
    }


    public String getMessage(){
            ConsumerRecords poll = consumer.poll(10000);
            for (ConsumerRecord record:poll) {
                System.out.println(String.format("===================>>>>>getMessage key:%s, value:%s",record.key(),record.value()));
            }
            return "";
    }

    public static void main(String[] args) {
        MyKafkaConsumer instance = MyKafkaConsumer.getInstance();
        instance.getMessage();
    }
}

4、结果验证

===================>>>>>getMessage key:null, value:this is my message hahahahaha
===================>>>>>getMessage key:null, value:this is my message 12
===================>>>>>getMessage key:null, value:this is my message 13
===================>>>>>getMessage key:myTest, value:this is my message 13
 

你可能感兴趣的:(kafka)