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. Meta AI 新研究,统一模态的自监督新里程碑
  2. Eclipse使用EGit管理git@OSC项目
  3. Java8新特性之函数式接口
  4. ecs服务器内网连接_让不同地域云服务器ECS和云数据库内网互通
  5. 深入浅出Yolov5之自有数据集训练超详细教程
  6. java加载jdbc驱动,加载JDBC驱动
  7. Gson源码解析之InstanceCreator简单说明
  8. Spark技术互动问答分享
  9. html网页视频播放器代码,HTML网页制作视频播放器现成代码
  10. e5cc温控仪通讯参数设定_咨询蔚伦触摸屏与欧姆龙温度控制仪E5EZMODBUSRTU的通讯方式...
  11. 【pandas数据分析】pandas安装
  12. ionic ion-refresher刷新完毕
  13. 金色传说:SAP-PPDS-SAPAPO/RRP3增强:控制界面需求数量字段修改后检查增强/用户事件USERCOMMAND响应增强
  14. Android音视频开发之ExoPlayer(一):快速入门ExoPlayer
  15. 佳文分享:我个人比较受用的一些习惯
  16. 感恩节,感谢大家的一路相伴
  17. 飞塔防火墙的配置与策略
  18. Java web+MySQL编写简易候选人投票(完整代码)
  19. pandas数据分析读书笔记(三)
  20. TXT文本 切分 查找 替换 文件合并的大数据工具软件

热门文章

  1. 莫凡python-matplotlib-class4
  2. cobbler+kickstart
  3. .Net Core3.1 集成Log4net
  4. 【python教程入门学习】Python程序员的花式表白
  5. igmp snooping v1/v2/v3
  6. 用普通调光器即可实现变色温调光的LED灯驱动控制芯片NU403
  7. Leo告诉您,投简历中最大的秘密!
  8. 广东实施《粤港澳大湾区规划纲要》三年计划近期发布
  9. WijmoJS ComponentOne发布 2020v1版本
  10. 软装商城——软装设计新模式