java實現Kafka生產者樣本

來源:互聯網
上載者:User

標籤:

使用java實現Kafka的生產者

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 package com.lisg.kafkatest; import java.util.Properties; import kafka.javaapi.producer.Producer;import kafka.producer.KeyedMessage;import kafka.producer.Partitioner;import kafka.producer.ProducerConfig;import kafka.serializer.StringEncoder; /** * Kafka生產者 * @author lisg * */public class KafkaProducer {     public static void main(String[] args) {                 Properties props = new Properties();        //根據這個配置擷取metadata,不必是kafka叢集上的所有broker,但最好至少有兩個        props.put("metadata.broker.list", "vm1:9092,vm2:9092");        //訊息傳遞到broker時的序列化方式        props.put("serializer.class", StringEncoder.class.getName());        //zk叢集        props.put("zookeeper.connect", "vm1:2181");        //是否擷取反饋        //0是不擷取反饋(訊息有可能傳輸失敗)        //1是擷取訊息傳遞給leader後反饋(其他副本有可能接受訊息失敗)        //-1是所有in-sync replicas接受到訊息時的反饋        props.put("request.required.acks", "1");//      props.put("partitioner.class", MyPartition.class.getName());                 //建立Kafka的生產者, key是訊息的key的類型, value是訊息的類型        Producer<Integer, String> producer = new Producer<Integer, String>(                new ProducerConfig(props));                 int count = 0;        while(true) {            String message = "message-" + ++count;            //訊息主題是test            KeyedMessage<Integer, String> keyedMessage = new KeyedMessage<Integer, String>("test", message);            //message可以帶key, 根據key來將訊息分配到指定區, 如果沒有key則隨機分配到某個區//          KeyedMessage<Integer, String> keyedMessage = new KeyedMessage<Integer, String>("test", 1, message);            producer.send(keyedMessage);            System.out.println("send: " + message);            try {                Thread.sleep(1000);            } catch (InterruptedException e) {                e.printStackTrace();            }        }         //      producer.close();    }  } /** * 自訂分區類 * */class MyPartition implements Partitioner {     public int partition(Object key, int numPartitions) {        return key.hashCode()%numPartitions;    }     }




來自為知筆記(Wiz)

附件列表

     

    java實現Kafka生產者樣本

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.