1.发送原理:

在消息发送的过程中,涉及到了两个线程——main 线程和 Sender 线程。在 main 线程
中创建了一个双端队列 RecordAccumulator。main 线程将消息发送给 RecordAccumulator,
Sender 线程不断从 RecordAccumulator 中拉取消息发送到 Kafka Broker。

  1. 通用是不使用这个拦截器的,使用的是Flume的拦截器,对数据进行加工
  2. 不使用Java的序列化工具,因为Java的序列化太重,大数据量并不适用
  3. 数据经过分区器后,一个分区会创建一个队列
  4. 创建队列的过程都是在内存中完成的,队列内存的总大小是32M,传输数据的批次大小是16KB,
  5. sender线程是专门用来将数据发送至broker的。缓冲区大小到达阙值后发送或者是时间到达后开启发送

消息发送到哪一个partition呢?

(1)如果消息中指定了Partition id,那就发送到对应的partition;
(2)如果没有,那就消息的key进行hash一下;
(3)如果id和key都没有,那就随机;

kafka消息的确认机制ack

(1)0表示不需要ACK,安全性低效率高;
(2)1表示需要一个ACK才会继续下一条;(一个follower接收就可以)
(3)-1(all)表示所有的follower都完成才会继续下一条,效率最低;

10 kafka生产者发送消息的原理相关推荐

  1. Kafka生产者发送消息的三种方式

    Kafka是一种分布式的基于发布/订阅的消息系统,它的高吞吐量.灵活的offset是其它消息系统所没有的. Kafka发送消息主要有三种方式: 1.发送并忘记 2.同步发送 3.异步发送+回调函数 下 ...

  2. 线上问题-kafka生产者发送消息总是失败

    问题解决过程 线上一个界面发现老是没有数据,排查下来时生产者没有成功发送消息所致,报错如下: org.springframework.kafka.core.KafkaProducerException ...

  3. Kafka实战 - 02 Kafka生产者发送消息至topic实现数据上报

    文章目录 1. 项目背景 2. 依赖和配置 3. 生产者配置 KafkaConfiguration 4. 同步数据Topic枚举 SyncDataTopicEnum 5. 请求体 DataSyncQo ...

  4. 【kafka系列】kafka之生产者发送消息实践

    目录 一.准备工作 二.终端命令 生产者命令 消费者命令 三.Java实践 搭建项目 异步发送-无回调 异步发送-有回调 同步发送 一.准备工作 进入实战之前先熟悉一下topic的相关命令,使用终端命 ...

  5. discard connection丢失数据_python kafka 生产者发送数据的三种方式

    python kafka 生产者发送数据的三种方式 发送方式 同步发送 发送数据耗时最长 有发送数据的状态,不会丢失数据,数据可靠性高 以同步的方式发送消息时,一条一条的发送,对每条消息返回的结果判断 ...

  6. 快速了解 Kafka 生产者的使用和原理

    作者 | 草捏子 整理 | 杨碧玉 出品 | 草捏子(ID:chaycao) 头图 |  CSDN 下载自视觉中国 本文将学习 Kafka 生产者的使用和原理,文中使用的 kafka-clients ...

  7. 【Kafka生产者发消息流程】

    发送流程 首先生产者调用send方法发送消息后,会先经过拦截器,接着进入序列化器.序列化器主要用于对消息的Key和Value进行序列化.接着进入分区器选择消息的分区. 上面这几步完成之后,消息会进入到 ...

  8. RocketMQ3.2.2生产者发送消息自动创建Topic队列数无法超过4个

    问题现象 RocketMQ3.2.2版本,测试时尝试发送消息时自动创建Topic,设置了队列数量为8: producer.setDefaultTopicQueueNums(8); 同时设置broker ...

  9. WhatsApp用户数突破10亿 每天发送消息420亿条

    WhatsApp用户数突破10亿 北京时间2月2日消息,Facebook旗下即时通讯应用WhatsApp今天宣布,服务的月活跃用户已经突破10亿. 根据周一WhatsApp公布的数据,成立7年的Wha ...

最新文章

  1. 基于 OpenCV 的人脸追踪
  2. java基础笔试_java基础笔试题
  3. Udacity并行计算课程笔记-The GPU Hardware and Parallel Communication Patterns
  4. android 实现定时通知,在Android中创建定时通知(例如,针对事件)
  5. DES密码实现( C语言 )
  6. JS获取请求URL相关参数
  7. MTK 驱动开发(18)---LCD 参数理解
  8. ic 卡获取帐号apdu指令_《全球行动》携手京东校园送福利 1000元京东卡等你拿
  9. 剧情介绍:“我是山姆”
  10. office commmunication server 2007企业版关于通讯簿共享权限问题(无法同步)
  11. Evince 3.7.5 发布,多格式文档浏览器
  12. java学习class5
  13. 快速从B站下载视频到本地(无需安装软件)
  14. z变换判断稳定性和因果性_试题库 - 7:z变换 -
  15. 风暴过后的小红书破圈解题,社区价值或被重估
  16. python中的IO操作
  17. SmartBI入门(二)配置SmartBI
  18. 蔡康永般“好好说话”?百度发起猛攻 推249元小度音箱
  19. linux下将8bit二值位图转化为1bit单色位图【C/C++】
  20. 生物化学 药物设计与研发笔记:变构(Allostery)药物设计

热门文章

  1. 天空中的鸟类与飞行安全。
  2. 如何搭建一个推荐系统
  3. Unity|| 如何把生存类游戏设计得更优秀
  4. 双十一的隐形战场:天猫预备700多种技术预案
  5. zabbix 个性化设置
  6. 如何恢复隐藏的未提交更改
  7. MATROSKA文件格式之Segments学习
  8. 企业需要DCIM工具来做什么?
  9. mqtt n.createConnection is not a function --分析
  10. 震惊!世上最全的人工智能知识总结!