当前位置:   article > 正文

Kafka生产者原理解析_max.in.flight.request.per.connection=1

max.in.flight.request.per.connection=1

kafka消息发送流程

流程图如下所示:
image

  1. 先初始化一个ProducerRecord对象,其中包含Topic和Value。key和Partion可选,初始化完成后会进行序列化
  2. 数据被传到分区器,如果ProducerRecord对象指定了分区直接进入下一步,否则会根据ProducerRecord对象的key选择一个分区。在确定分区后,这条记录会被添加到一个记录批次。这个批次的消息会被发送到指定的主题和分区上
  3. 服务器收到消息后返回相应,如果消息写入成功,返回一个RecordMetaData对象,包含主题和分区信息,以及记录在分区里的偏移量;如果写入失败,会返回一个错误,生成着在收到错误后会尝试重新发送消息,重试多次失败后返回错误信息。

Kafka创建生产者

初始化生产者发送消息示例

初始化消息生产者有3个必选参数:

  1. boostrap.servers:指定broker的地址列表,格式为host:port。列表无需提供所有的broker地址,生产者会从给定的broker中查找到其他broker的消息,但建议至少提供两个,确保在其中一个宕机情况下,生产者仍然能够连接到集群
  2. key.serializer:指定发送消息的序列化类型,生产者在发送消息前,如果key为复杂Java对象,需要进行序列化,可以通过这个配置指定序列化类型,序列化类型必须实现org.apache.kafka.common.serialization.Serializer接口。
  3. value.serializer:指定值序列化类型,类似与key.serializer

创建和发送消息的流程示例如下所示:

Properties properties = new Properties();
// 指定broker连接
properties.put("bootstrap.servers", "127.0.0.1:9092");
// 指定key序列化器,这里为字符串序列化器
properties.put("key.serializer", StringSerializer.class.
  • 1
  • 2
  • 3
  • 4
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/534397
推荐阅读
相关标签
  

闽ICP备14008679号