Kafka Scala Producer API

本文详细介绍了如何使用Kafka的Java API构造并使用生产者对象发送消息到Kafka集群。从配置属性开始,包括指定broker列表、设置序列化类、选择分区策略等步骤,再到构造消息对象并发送消息,最后关闭生产者资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Kafka Scala 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();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值