您的位置:首页 > 其它

Kafka Scala Producer API

2016-06-28 22:51 155 查看

Kafka Sca
4000
la Producer API

官方example:

https://cwiki.apache.org/confluence/display/KAFKA/0.8.0+Producer+Example

构造Producer

构造一个
kafka.javaapi.producer.Producer<K, V>
对象,K:分区key类型,V:消息类型

Properties props = new Properties();

props.put("metadata.broker.list", "broker1:9092,broker2:9092");//该配置项必须有,producer通过连接这些broker找到partition的leader,只要是集群中的broker就行,不一定要leader的
props.put("serializer.class", "kafka.serializer.StringEncoder");//序列化,这个类的输入决定了KeyedMessage<K,V>中V的类型,默认为kafka.serializer.DefaultEncoder,即直接传输byte[]
props.put("partitioner.class", "example.producer.myPartitioner");//分区规则,也有默认的,可以自定义
props.put("request.required.acks", "1");//发送消息成功后需要等待kafka的回应

ProducerConfig config = new ProducerConfig(props);

Producer<String, String> producer = new Producer<String, String>(config);


构造消息

构造消息
kafka.producer.KeyedMessage<K,V>
,K V与上述相同

KeyedMessage<String, String> data = new KeyedMessage<K, V>(String topic, K key, V message);

//若无kay参数,将随机投递至一个分区
KeyedMessage<String, String> data = new KeyedMessage<K, V>(String topic, V message);


发送消息

producer.send(data);


关闭producer

producer.close();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: