Kafka系列2:深入理解Kafka生产者
\">Kafka系列2:深入理解Kafka消费者
上篇聊了Kafka概况 , 包含了Kafka的基本概念、设计原理 , 以及设计核心 。 本篇单独聊聊Kafka的生产者 , 包括如下内容:
-
生产者是如何生产消息
-
如何创建生产者
-
发送消息到Kafka
-
生产者配置
-
分区
生产者是如何生产消息的
首先来看一下Kafka生产者组件图
第一步 , Kafka 会将发送消息包装为 ProducerRecord 对象 , ProducerRecord 对象包含了目标主题和要发送的内容 , 同时还可以指定键和分区 。 在发送 ProducerRecord 对象前 , 生产者会先把键和值对象序列化成字节数组 , 这样它们才能够在网络上传输 。 第二步 , 数据被传给分区器 。 如果之前已经在 ProducerRecord 对象里指定了分区 , 那么分区器就不会再做任何事情 。 如果没有指定分区 , 那么分区器会根据 ProducerRecord 对象的键来选择一个分区 , 紧接着 , 这条记录被添加到一个记录批次里 , 这个批次里的所有消息会被发送到相同的主题和分区上 。 有一个独立的线程负责把这些记录批次发送到相应的 broker 上 。 服务器在收到这些消息时会返回一个响应 。 如果消息成功写入 Kafka , 就返回一个 RecordMetaData 对象 , 它包含了主题和分区信息 , 以及记录在分区里的偏移量 。 如果写入失败 , 则会返回一个错误 。 生产者在收到错误之后会尝试重新发送消息 , 如果达到指定的重试次数后还没有成功 , 则直接抛出异常 , 不再重试 。
推荐阅读
- |阴阳哲学探索系列之一百零八十四(以组织层级为例)
- 使命召唤手游|整个仙剑系列,修仙的角色一抓一大把,但真正成仙的又有哪些呢?
- 世界观|《真.女神转生V》系列回顾与测评:奇幻世界,现代视角,与魔为伴
- 皮卡丘|庆祝《宝可梦》系列25周年,官方推限量25尊「水晶皮卡丘」
- 大话西游2|大话西游2:这么全面的万金油神兽从鎏金宝鉴系列里可以说是”大哥“的存在了!
- |LOLM神龙和光明哨兵,哪个系列皮肤更受欢迎?玩家:主要看价格
- 开罗|《Let's Build a Zoo》No More Robots 系列新作,开罗向游戏上架steam
- |新作只排第四! 《银河战士》系列排名TOP10
- 炉石传说|炉石传说:迷你系列,1费新卡快攻德质变,胜率最高直逼最强卡组
- iqoo8|游戏表现“天花板”非它莫属!KPL选手同款的iQOO 8系列