Kafka生产者

Kafka生产者

生产流程

在这里插入图片描述

一个ProducerRecord包含topic,partition,key,value。键和值要序列化才能在网络上传输,接下来到达分区器,如果没有指定分区,分区器会根据ProducerRecord对象的键来选择一个分区,指定了分区则直接返回。紧接着,这条记录被添加到一个记录批次里,这个批次里的所有消息都会发送到相同的主题和分区上。服务器收到后消息后会返回一个响应,如果消息成功写入Kafka,就会返回一个RecordMetaData,里面包含了topic,分区,分区偏移量。如果写入失败,则会返回一个错误,客户端后重试,几次失败,就会返回错误消息。

创建Kafka生产者

Kafka生产者有3个必选属性

bootstrap.servers: 该属性指定broker的地址清单,格式为host:port。清单里不需要包含所有的broker地址,生产者会从给定的broker里查找到其他broker的信息。建议提供两个broker,保证可用性。

key.serializer: broker希望接收到的消息的键和值都是字节数组,key.serializer必须被设置为一个实现了org.apache.kafka.common.serialization.Serializer接口的类。

value.serializer: 值得序列化器。

在这里插入图片描述

producer的发送时支持多线程的,所以高吞吐量时,可以增加线程数,如果还不够,可以增加生产者数量。

发送消息到Kafka

最简单的消息发送方式

用来发送不太重要的消息

ProducerRecord<String, String> record = new ProcuderRecord<>("CustomerCountry", "Precision Products", "France")try {
   
   producer.send(record);
} catch (Exception e) {
   
   e.printStackTrace();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值