- 1 分区消费模式 直接由客户端(任一语言编写)使用Kafka提供的协议向服务器发送RPC请求获取数据,服务器接受到客户端的RPC请求后,将数据构造成RPC响应,返回给客户端,客户端解析相应的RPC响应获取数据。 Kafka支持的协议众多,使用比较重要的有: 获取消息的FetchRequest和FetchResponse获取offset的OffsetRequest和... 1 分区消费模式 直接由客户端(任一语言编写)使用Kafka提供的协议向服务器发送RPC请求获取数据,服务器接受到客户端的RPC请求后,将数据构造成RPC响应,返回给客户端,客户端解析相应的RPC响应获取数据。 Kafka支持的协议众多,使用比较重要的有: 获取消息的FetchRequest和FetchResponse获取offset的OffsetRequest和...
- Kafka是分布式的,基于发布订阅的消息系统。 1 特点 同时为发布和订阅提供高吞吐量 Kafka每秒可生产约25万条消息(50 MB),每秒处理55万条消息(110 MB)持久化 默认就将消息持久化到磁盘,因此可用于批量消费,例如ETL,以及实时应用程序。通过将数据持久化到硬盘以及防止数据丢失。以O(1)时间复杂度提供消息持久化能力,即使对TB级以上数据也能保证常... Kafka是分布式的,基于发布订阅的消息系统。 1 特点 同时为发布和订阅提供高吞吐量 Kafka每秒可生产约25万条消息(50 MB),每秒处理55万条消息(110 MB)持久化 默认就将消息持久化到磁盘,因此可用于批量消费,例如ETL,以及实时应用程序。通过将数据持久化到硬盘以及防止数据丢失。以O(1)时间复杂度提供消息持久化能力,即使对TB级以上数据也能保证常...
- 在Kafka的数据路径下有很多.index和.timeindex后缀文件: .index文件,即Kafka中的位移索引文件.timeindex文件,即时间戳索引文件。 1 OffsetIndex - 位移索引 1.1 定义 用于根据位移值快速查找消息所在文件位置。 每当Consumer需要从topic分区的某位置开始读消息时,Kafka就会用OffsetInd... 在Kafka的数据路径下有很多.index和.timeindex后缀文件: .index文件,即Kafka中的位移索引文件.timeindex文件,即时间戳索引文件。 1 OffsetIndex - 位移索引 1.1 定义 用于根据位移值快速查找消息所在文件位置。 每当Consumer需要从topic分区的某位置开始读消息时,Kafka就会用OffsetInd...
- 1.kafka启动: ./kafka-server-start.sh ../config/server.properties & 2.创建topic: ./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic tes 3.查看... 1.kafka启动: ./kafka-server-start.sh ../config/server.properties & 2.创建topic: ./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic tes 3.查看...
- 本节目录 1、消息轨迹数据格式2、记录消息轨迹3、如何存储消息轨迹数据 RocketMQ消息轨迹主要包含两篇文章:设计篇与源码分析篇,本节将详细介绍RocketMQ消息轨迹-设计相关。 RocketMQ消息轨迹,主要跟踪消息发送、消息消费的轨迹,即详细记录消息各个处理环节的日志,从设计上至少需要解决如下三个核心问题: 消费轨迹数据格式记录消息轨迹(... 本节目录 1、消息轨迹数据格式2、记录消息轨迹3、如何存储消息轨迹数据 RocketMQ消息轨迹主要包含两篇文章:设计篇与源码分析篇,本节将详细介绍RocketMQ消息轨迹-设计相关。 RocketMQ消息轨迹,主要跟踪消息发送、消息消费的轨迹,即详细记录消息各个处理环节的日志,从设计上至少需要解决如下三个核心问题: 消费轨迹数据格式记录消息轨迹(...
- 本篇将结合自己使用 RocketMQ 的经验,对消息发送常见的问题进行分享,基本会遵循出现问题,分析问题、解决问题。 No route info of this topic 无法找到路由信息,其完整的错误堆栈信息如下: 而且很多读者朋友会说,Broker 端开启了自动创建主题也会出现上述问题。 RocketMQ 的路由寻找流程如下图所示: 上面的核心关键点如... 本篇将结合自己使用 RocketMQ 的经验,对消息发送常见的问题进行分享,基本会遵循出现问题,分析问题、解决问题。 No route info of this topic 无法找到路由信息,其完整的错误堆栈信息如下: 而且很多读者朋友会说,Broker 端开启了自动创建主题也会出现上述问题。 RocketMQ 的路由寻找流程如下图所示: 上面的核心关键点如...
- 消息组接到某项目组反馈,topic 在扩容后出现部分队列无法被消费者,导致消息积压,影响线上业务? 考虑到该问题是发送在真实的线上环境,为了避免泄密,本文先在笔者的虚拟机中来重现问题。 本节目录 1、案情回顾1.1 集群现状1.2、RocketMQ 在线扩容队列1.3 消息发送 2、问题暴露3、问题分析4、问题复盘 1、案情回顾 1.1 集群现状 ... 消息组接到某项目组反馈,topic 在扩容后出现部分队列无法被消费者,导致消息积压,影响线上业务? 考虑到该问题是发送在真实的线上环境,为了避免泄密,本文先在笔者的虚拟机中来重现问题。 本节目录 1、案情回顾1.1 集群现状1.2、RocketMQ 在线扩容队列1.3 消息发送 2、问题暴露3、问题分析4、问题复盘 1、案情回顾 1.1 集群现状 ...
- 1、初识 Kafka Producer 生产者 2、源码分析 Kafka 消息发送流程(文末附流程图) 3、KafkaProducer Sender 线程详解(含详细的执行流程图) 4、初始 Kafka Consumer 消费者 5、源码分析Kafka 消息拉取流程 6、Kafka与RocketMQ性能对比大揭秘 1、初识 Kafka Producer 生产者 2、源码分析 Kafka 消息发送流程(文末附流程图) 3、KafkaProducer Sender 线程详解(含详细的执行流程图) 4、初始 Kafka Consumer 消费者 5、源码分析Kafka 消息拉取流程 6、Kafka与RocketMQ性能对比大揭秘
- image.png 测试数据准备 在正式开始之前,请先下载好上述所需要的文件。我们首先用命令docker-compose up -d启动docker。我们可以利用以下命令从 Terminal 进入 Mysql 容器之中,并插入相应的数据。 docker exec -it mysql bash -c 'mysql -uroot -p123456' 在 Mysql ... image.png 测试数据准备 在正式开始之前,请先下载好上述所需要的文件。我们首先用命令docker-compose up -d启动docker。我们可以利用以下命令从 Terminal 进入 Mysql 容器之中,并插入相应的数据。 docker exec -it mysql bash -c 'mysql -uroot -p123456' 在 Mysql ...
- 幂等性+ack-1+事务 Kafka数据重复,可以再下一级:SparkStreaming、redis或者hive中dwd层去重,去重的手段:分组、按照id开窗只取第一个值; Kafka数据重复怎么处理? 在下一级消费者中去重。(redis、SparkStreaming) 二、重复消费问题: 即上述 消费方第1种情况—consumer在从broker读取消息后等消费完再comm... 幂等性+ack-1+事务 Kafka数据重复,可以再下一级:SparkStreaming、redis或者hive中dwd层去重,去重的手段:分组、按照id开窗只取第一个值; Kafka数据重复怎么处理? 在下一级消费者中去重。(redis、SparkStreaming) 二、重复消费问题: 即上述 消费方第1种情况—consumer在从broker读取消息后等消费完再comm...
- 1)如果MR造成系统宕机。此时要控制Yarn同时运行的任务数,和每个任务申请的最大内存。调整参数: yarn.scheduler.maximum-allocation-mb(单个任务可申请的最多物理内存量,默认是8192MB) 2)如果写入文件过量造成NameNode宕机。那么调高Kafka的存储大小,控制从Kafka到HDFS的写入速度。高峰期的时候用Kafka进行缓存,高峰... 1)如果MR造成系统宕机。此时要控制Yarn同时运行的任务数,和每个任务申请的最大内存。调整参数: yarn.scheduler.maximum-allocation-mb(单个任务可申请的最多物理内存量,默认是8192MB) 2)如果写入文件过量造成NameNode宕机。那么调高Kafka的存储大小,控制从Kafka到HDFS的写入速度。高峰期的时候用Kafka进行缓存,高峰...
- 10 Kafka丢不丢数据 Ack=0,相当于异步发送,消息发送完毕即offset增加,继续生产。 Ack=1,leader收到leader replica 对一个消息的接受ack才增加offset,然后继续生产。 Ack=-1,leader收到所有replica 对一个消息的接受ack才增加offset,然后继续生产。 kafka 如何保证数据不丢失 kafka的分区策略==... 10 Kafka丢不丢数据 Ack=0,相当于异步发送,消息发送完毕即offset增加,继续生产。 Ack=1,leader收到leader replica 对一个消息的接受ack才增加offset,然后继续生产。 Ack=-1,leader收到所有replica 对一个消息的接受ack才增加offset,然后继续生产。 kafka 如何保证数据不丢失 kafka的分区策略==...
- 在 Kafka内部存在两种默认的分区分配策略:Range和 RoundRobin。 Range是默认策略。Range是对每个Topic而言的(即一个Topic一个Topic分),首先对同一个Topic里面的分区按照序号进行排序,并对消费者按照字母顺序进行排序。然后用Partitions分区的个数除以消费者线程的总数来决定每个消费者线程消费几个分区。如果除不尽,那么前面几个消费者... 在 Kafka内部存在两种默认的分区分配策略:Range和 RoundRobin。 Range是默认策略。Range是对每个Topic而言的(即一个Topic一个Topic分),首先对同一个Topic里面的分区按照序号进行排序,并对消费者按照字母顺序进行排序。然后用Partitions分区的个数除以消费者线程的总数来决定每个消费者线程消费几个分区。如果除不尽,那么前面几个消费者...
- 19 Kafka参数优化 1)Broker参数配置(server.properties) 1、网络和io操作线程配置优化 broker处理消息的最大线程数(默认为3) num.network.threads=cpu核数+1 broker处理磁盘IO的线程数 num.io.threads=cpu核数*2 2、log数据文件刷盘策略 每当producer写入10000条消息时,刷数... 19 Kafka参数优化 1)Broker参数配置(server.properties) 1、网络和io操作线程配置优化 broker处理消息的最大线程数(默认为3) num.network.threads=cpu核数+1 broker处理磁盘IO的线程数 num.io.threads=cpu核数*2 2、log数据文件刷盘策略 每当producer写入10000条消息时,刷数...
- Spark Streming的特性 易用、容错、易整合 Spark Streaming 对比 Storm & SparkStreaming Storm 开发语言 Scala Clojure 编程模型3 DStream Spout/Bolt 实时性 准实时,批处理 实时流处理 Spark Streming编程实战 开发流程: 1、构建sparkCon... Spark Streming的特性 易用、容错、易整合 Spark Streaming 对比 Storm & SparkStreaming Storm 开发语言 Scala Clojure 编程模型3 DStream Spout/Bolt 实时性 准实时,批处理 实时流处理 Spark Streming编程实战 开发流程: 1、构建sparkCon...
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签