zoukankan      html  css  js  c++  java
  • kafka代码测试连接

    1.发送:

    package kafka.test;

    import java.util.Date;
    import java.util.Properties;
    import java.util.Random;

    import kafka.javaapi.producer.Producer;
    import kafka.producer.KeyedMessage;
    import kafka.producer.ProducerConfig;

    public class KafkaProduct {
    public static void main(String[] args) {

    long events=Long.parseLong("1");
    Random random =new Random();
    Properties properties =new Properties();
    properties.put("metadata.broker.list", "192.168.56.107:9092");
    properties.put("serializer.class", "kafka.serializer.StringEncoder");
    properties.put("request.required.acks", "1");
    ProducerConfig config =new ProducerConfig(properties);
    Producer<String,String> producer =new Producer(config);
    for(int i=0;i<events;i++){

    long runtime=new Date().getTime();
    String ip="192.168.56.107";
    //String msg=runtime+",helloworld,"+ip;
    String msg="网盘哎你的";
    KeyedMessage<String, String> keyedMessage=new KeyedMessage<String, String>("page_visits", ip,msg);
    System.out.println(events+"---"+runtime);
    producer.send(keyedMessage);
    }
    producer.close();
    }
    }

    2.接收:

    package kafka.test;

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

    import kafka.consumer.ConsumerConfig;
    import kafka.consumer.ConsumerIterator;
    import kafka.consumer.KafkaStream;
    import kafka.javaapi.consumer.ConsumerConnector;
    import kafka.serializer.StringDecoder;
    import kafka.utils.VerifiableProperties;

    public class KafkaCusmer {
    private final ConsumerConnector consumer;

    private KafkaCusmer() {
    Properties props = new Properties();
    // zookeeper 配置
    props.put("zookeeper.connect", "192.168.56.107:2181");
    // group 代表一个消费组
    props.put("group.id", "jd-group");
    // zk连接超时
    props.put("zookeeper.session.timeout.ms", "40000");
    props.put("zookeeper.sync.time.ms", "200");
    props.put("auto.commit.interval.ms", "1000");
    props.put("auto.offset.reset", "smallest");
    // 序列化类
    props.put("serializer.class", "kafka.serializer.StringEncoder");
    ConsumerConfig config = new ConsumerConfig(props);
    consumer = kafka.consumer.Consumer.createJavaConsumerConnector(config);
    }

    void consume() {
    Map<String, Integer> topicCountMap = new HashMap<String, Integer>();
    //topicCountMap.put(KafkaProducerDemo.TOPIC, new Integer(1));
    topicCountMap.put("page_visits", new Integer(1));

    StringDecoder keyDecoder = new StringDecoder(new VerifiableProperties());
    StringDecoder valueDecoder = new StringDecoder(new VerifiableProperties());

    Map<String, List<KafkaStream<String, String>>> consumerMap = consumer.createMessageStreams(topicCountMap,
    keyDecoder, valueDecoder);
    KafkaStream<String, String> stream = consumerMap.get("page_visits").get(0);
    ConsumerIterator<String, String> it = stream.iterator();
    while (it.hasNext())
    System.out.println(it.next().message());
    }

    public static void main(String[] args) {
    new KafkaCusmer().consume();
    }
    }

  • 相关阅读:
    【每日英语】
    【百宝箱】CLion: Cound not load cache
    C# WPF:这次把文件拖出去!
    C# WPF:快把文件从桌面拖进我的窗体来!
    两个List< string>比较是否相同的N种方法,你用过哪种?
    分享套接字数据包序列化与反序列化方法
    如何从含有占位符的字符串生成一个ReactNode数组
    vscode 插件配置指北
    第十一周总结
    机场&代理商-关系图
  • 原文地址:https://www.cnblogs.com/shanshen/p/8865400.html
Copyright © 2011-2022 走看看