3.4 Kafka Producer API之发送原理

1.发送原理
producer发送原理主要分为两步,第一步是构建producer对象,第二步是发送消息,详细步骤如下图所示。
在这里插入图片描述
(1).首先要构造一个ProducerRecord对象,该对象可以声明主题(topic)、分区(partition)、键(key)以及值(value),主题和值是必须要声明的,分区和键可以不用指定。

(2).调用send()方法进行消息发送。

(3).因为消息要到网络上进行传输,所以必须进行序列化,序列化器的作用就是把消息的key和value对象序列化成字节数组。

(4).接下来数据传到分区器,如果之前的ProducerRecord对象指定了分区,那么分区器将不再做任何事,直接把指定的分区返回。如果没有,那么分区器会根据key来选择一个分区,选择好分区之后,生产者就知道该往哪个主题和分区发送消息了。

(5).接着这条记录会被添加到一个记录批次里面,这个批次里所有的消息会被发送到相同的主题和分区。会有一个独立的线程来把这些记录批次发送到相应的broker上。

(6).broker成功接收到消息,表示发送成功,返回消息的元数据(包括主题、分区信息以及记录在分区里的偏移量)。发送失败,可以选择重试或者直接抛出异常。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值