 Apache RocketMQ 从入门到实战RocketMQ 进程自动退出排查经验分享 78 1.8 RocketMQ 主题扩分片后遇到的坑 82 1.9 RocketMQ 消息发送 system busy、broker busy 原因分析与解决方案坑 91 1.10 再谈 RocketMQ broker busy 104 1.11 从年末生产故障解锁 RocketMQ 集群部署的最佳实践 108 1.12 RocketMQ 一行代码造成大量消息丢失 msgId 与 offsetMsgId 释疑 131 1.15 RocketMQ ACL 使用指南 141 1.16 RocketMQ 消息轨迹-设计篇 151 1.17 消息发送常见问题与解决方案 155 本文来自『中间件兴趣圈』公众号,仅作技术交流,未授权任何商业行为。 开篇:我的另一种参与 RocketMQ 开源社区的方式 < 6 开篇:我的另一种参与 RocketMQ 开源 社区的方式 如何实现刷盘(可以类比一下数据库方面的刷盘、redo、undo 日志)?  RocketMQ 文件存储设计理念、基于文件的 Hash 索引是怎么实现的?  定时消息、消息过滤等实现原理。  如何进行网络编程(Netty 实战)? 下定决心后便开始了我的源码分析 RocketMQ 之旅,大概在 4 个多月的时间中连续 发表了 30 余篇文章,从 Nameserver、消息发送高可用设计、消息存储、消息消费、消0 码力 | 165 页 | 12.53 MB | 1 年前3 Apache RocketMQ 从入门到实战RocketMQ 进程自动退出排查经验分享 78 1.8 RocketMQ 主题扩分片后遇到的坑 82 1.9 RocketMQ 消息发送 system busy、broker busy 原因分析与解决方案坑 91 1.10 再谈 RocketMQ broker busy 104 1.11 从年末生产故障解锁 RocketMQ 集群部署的最佳实践 108 1.12 RocketMQ 一行代码造成大量消息丢失 msgId 与 offsetMsgId 释疑 131 1.15 RocketMQ ACL 使用指南 141 1.16 RocketMQ 消息轨迹-设计篇 151 1.17 消息发送常见问题与解决方案 155 本文来自『中间件兴趣圈』公众号,仅作技术交流,未授权任何商业行为。 开篇:我的另一种参与 RocketMQ 开源社区的方式 < 6 开篇:我的另一种参与 RocketMQ 开源 社区的方式 如何实现刷盘(可以类比一下数据库方面的刷盘、redo、undo 日志)?  RocketMQ 文件存储设计理念、基于文件的 Hash 索引是怎么实现的?  定时消息、消息过滤等实现原理。  如何进行网络编程(Netty 实战)? 下定决心后便开始了我的源码分析 RocketMQ 之旅,大概在 4 个多月的时间中连续 发表了 30 余篇文章,从 Nameserver、消息发送高可用设计、消息存储、消息消费、消0 码力 | 165 页 | 12.53 MB | 1 年前3
 Apache RocketMQ on Amazon Web Services点,目前广泛使用于国内 外的互联网公司。针对 AMAZON WEB SERVICES 客户需要在 AMAZON WEB SERVICES 上 使用 RocketMQ 的需求,我们开发了一键部署的方案,帮助客户快速的在自己的账号 部署一个基于 EC2 的高可用的 RocketMQ 集群。 架构 AMAZON CloudFormation 提供了一种创建和管理相关 AMAZON WEB SERVICES 环境中,另一种是 部署到已有 VPC 环 境中。使用默认参数为在新 VPC 环境中 部署以下资源。如果您选择的是将此方案部署 到已有 VPC 中,将跳过 (不创建) 带有星号(*)的组件,并提⽰ 您目前现有的配置。 按照默认 RocketMQ 的部署参数部署完成后,该方案会在用户的 AMAZON WEB SERVICES account 下部署如下的一个架构,包含两个 Nameserver Page 5 of 18 为由光环新网运营的 AMAZON WEB SERVICES(北京)区域,因其对外 提供 2 个可用区,本解决方案将重复使用其中一个可用区来创建第三个⼦网。 部署说明 1. 此方案仅针对使用由西云数据运营的 AMAZON WEB SERVICES(宁夏)区域或由 光环新网运营的 AMAZON WEB SERVICES(北京)区域。在开始之前,请先确保0 码力 | 18 页 | 1.55 MB | 1 年前3 Apache RocketMQ on Amazon Web Services点,目前广泛使用于国内 外的互联网公司。针对 AMAZON WEB SERVICES 客户需要在 AMAZON WEB SERVICES 上 使用 RocketMQ 的需求,我们开发了一键部署的方案,帮助客户快速的在自己的账号 部署一个基于 EC2 的高可用的 RocketMQ 集群。 架构 AMAZON CloudFormation 提供了一种创建和管理相关 AMAZON WEB SERVICES 环境中,另一种是 部署到已有 VPC 环 境中。使用默认参数为在新 VPC 环境中 部署以下资源。如果您选择的是将此方案部署 到已有 VPC 中,将跳过 (不创建) 带有星号(*)的组件,并提⽰ 您目前现有的配置。 按照默认 RocketMQ 的部署参数部署完成后,该方案会在用户的 AMAZON WEB SERVICES account 下部署如下的一个架构,包含两个 Nameserver Page 5 of 18 为由光环新网运营的 AMAZON WEB SERVICES(北京)区域,因其对外 提供 2 个可用区,本解决方案将重复使用其中一个可用区来创建第三个⼦网。 部署说明 1. 此方案仅针对使用由西云数据运营的 AMAZON WEB SERVICES(宁夏)区域或由 光环新网运营的 AMAZON WEB SERVICES(北京)区域。在开始之前,请先确保0 码力 | 18 页 | 1.55 MB | 1 年前3
 快速部署高可用的Apache RocketMQ 集群 - Amazon S3顶级项目,RocketMQ 具有低延迟,金融级高可用以及厂商中立的特点,目前广泛使 用于国内外的互联网公司。针对亚马逊云科技客户需要在亚马逊云科技上使用 RocketMQ 的需求,我们开发了一键部署的方案,帮助客户快速的在自己的账号部署 一个基于 EC2 的高可用的 RocketMQ 集群。 架构 Amazon CloudFormation 提供了⼀种创建和管理相关 AMAZON WEB SERVICES 部署以下资源。如果您选择的 是将此⽅案部署到已有 VPC 中,将跳过 (不创建) 带有星号(*)的组件,并提⽰ 您⽬ 前现有的配置。 按照默认 RocketMQ 的部署参数部署完成后,该方案会在用户的亚马逊云科技账户下 部署如下的一个架构,包含两个 Nameserver 互为备份,三个 Broker Instance 每个 Broker Instance 上面启动三个 Broker 存储的⼤⼩。快速⼊⻔将 把副本集启动在在不同的可⽤ 区中。如果您选择的 AMAZON WEB SERVICES 区域为由光环新⽹运营的 亚马逊云科技(北京)区域,因其对 外 提供 2 个可⽤区,本解决方案将重复使⽤其中⼀个可⽤区来创建第三个 ⼦⽹。 部署说明 1. 此⽅案仅针对使⽤由西云数据运营的 亚马逊云科技(宁夏)区域或由光环新⽹ 运营的 亚马逊云科技(北京)区域。在开始之前,请先确保您已经有了⼀个可0 码力 | 21 页 | 2.57 MB | 1 年前3 快速部署高可用的Apache RocketMQ 集群 - Amazon S3顶级项目,RocketMQ 具有低延迟,金融级高可用以及厂商中立的特点,目前广泛使 用于国内外的互联网公司。针对亚马逊云科技客户需要在亚马逊云科技上使用 RocketMQ 的需求,我们开发了一键部署的方案,帮助客户快速的在自己的账号部署 一个基于 EC2 的高可用的 RocketMQ 集群。 架构 Amazon CloudFormation 提供了⼀种创建和管理相关 AMAZON WEB SERVICES 部署以下资源。如果您选择的 是将此⽅案部署到已有 VPC 中,将跳过 (不创建) 带有星号(*)的组件,并提⽰ 您⽬ 前现有的配置。 按照默认 RocketMQ 的部署参数部署完成后,该方案会在用户的亚马逊云科技账户下 部署如下的一个架构,包含两个 Nameserver 互为备份,三个 Broker Instance 每个 Broker Instance 上面启动三个 Broker 存储的⼤⼩。快速⼊⻔将 把副本集启动在在不同的可⽤ 区中。如果您选择的 AMAZON WEB SERVICES 区域为由光环新⽹运营的 亚马逊云科技(北京)区域,因其对 外 提供 2 个可⽤区,本解决方案将重复使⽤其中⼀个可⽤区来创建第三个 ⼦⽹。 部署说明 1. 此⽅案仅针对使⽤由西云数据运营的 亚马逊云科技(宁夏)区域或由光环新⽹ 运营的 亚马逊云科技(北京)区域。在开始之前,请先确保您已经有了⼀个可0 码力 | 21 页 | 2.57 MB | 1 年前3
 RocketMQ v3.2.4 开发指南........................................................................................ 29 9.1 网络协议 ................................................................................................ 可以严格的保证消息有序。 4.4 Message Filter  Broker 端消息过滤 在 Broker 中,挄照 Consumer 的要求做过滤,优点是减少了对亍 Consumer 无用消息的网络传输。 缺点是增加了 Broker 的负担,实现相对复杂。 (1). 淘宝 Notify 支持多种过滤方式,包含直接挄照消息类型过滤,灵活的诧法表达式过滤,几乎可以满足 最苛刻的过滤需求。 为了追求高性能,幵丌保证此特性,要求在业务上迕行去重, 也就是说消费消息要做到幂等性。RocketMQ 虽然丌能严格保证丌重复,但是正常情冴下很少会出现重复収送、消 费情冴,只有网络异常,Consumer 启停等异常情冴下会出现消息重复。 此问题的本质原因是网络调用存在丌确定性,即既丌成功也丌失败的第三种状态,所以才产生了消息重复性问 题。 4.10 Broker 的 Buffer 满了怎么办? Broker0 码力 | 52 页 | 1.61 MB | 1 年前3 RocketMQ v3.2.4 开发指南........................................................................................ 29 9.1 网络协议 ................................................................................................ 可以严格的保证消息有序。 4.4 Message Filter  Broker 端消息过滤 在 Broker 中,挄照 Consumer 的要求做过滤,优点是减少了对亍 Consumer 无用消息的网络传输。 缺点是增加了 Broker 的负担,实现相对复杂。 (1). 淘宝 Notify 支持多种过滤方式,包含直接挄照消息类型过滤,灵活的诧法表达式过滤,几乎可以满足 最苛刻的过滤需求。 为了追求高性能,幵丌保证此特性,要求在业务上迕行去重, 也就是说消费消息要做到幂等性。RocketMQ 虽然丌能严格保证丌重复,但是正常情冴下很少会出现重复収送、消 费情冴,只有网络异常,Consumer 启停等异常情冴下会出现消息重复。 此问题的本质原因是网络调用存在丌确定性,即既丌成功也丌失败的第三种状态,所以才产生了消息重复性问 题。 4.10 Broker 的 Buffer 满了怎么办? Broker0 码力 | 52 页 | 1.61 MB | 1 年前3
 基于Apache APISIX 与RocketMQ 构建云原生一体化架构物理机 经典网络/VPC 网络 Overlay/Underlay NVMe 普通云盘 ESSD 云盘 SA TA 独占/混部/独立交付…… • 集群节点异常成为常态 • 依赖服务随时可能在进行迁移或重启 • 对弹性的要求开始从物理资源变为逻辑资源 • IaaS 的多样性对应用交付部署提出了更高要求 • 可运维性、可观测性带来了更大挑战 • 多租环境带来了更高的网络及安全隔离要求 低成本 高 SLA X 客户价值: X 多场景 云原生时代的挑战 云原生四要素 云原生时代的 RocketMQ admin 富客户端 轻量级 SD K API兼容 计算 云存储 VPC 网络 Kubernetes Name Server Name Server Name Server 计算集群 可观测 remoting gRPC MQTT AMQP AC L 消息 事件 加快数据读取速度 你集群是正常的,但我消费就是出问题了,怎么办!? 无损弹性扩缩 固定分区面临的挑战 • 无切换架构中,主节点宕机,备节点不可写,分区数量减少 • 容量不足,Kafka 分区迁移时,会导致网络风暴,耗时极长 问题重点 • 在主节点宕机时,备节点要有自动切换为主的能力 • 容量调整时,不能产生数据迁移,且要在秒级完成 固定分区使用场景 • 任务计算过程中,会将同一个业务类型的数据发到同一个队列0 码力 | 22 页 | 2.26 MB | 1 年前3 基于Apache APISIX 与RocketMQ 构建云原生一体化架构物理机 经典网络/VPC 网络 Overlay/Underlay NVMe 普通云盘 ESSD 云盘 SA TA 独占/混部/独立交付…… • 集群节点异常成为常态 • 依赖服务随时可能在进行迁移或重启 • 对弹性的要求开始从物理资源变为逻辑资源 • IaaS 的多样性对应用交付部署提出了更高要求 • 可运维性、可观测性带来了更大挑战 • 多租环境带来了更高的网络及安全隔离要求 低成本 高 SLA X 客户价值: X 多场景 云原生时代的挑战 云原生四要素 云原生时代的 RocketMQ admin 富客户端 轻量级 SD K API兼容 计算 云存储 VPC 网络 Kubernetes Name Server Name Server Name Server 计算集群 可观测 remoting gRPC MQTT AMQP AC L 消息 事件 加快数据读取速度 你集群是正常的,但我消费就是出问题了,怎么办!? 无损弹性扩缩 固定分区面临的挑战 • 无切换架构中,主节点宕机,备节点不可写,分区数量减少 • 容量不足,Kafka 分区迁移时,会导致网络风暴,耗时极长 问题重点 • 在主节点宕机时,备节点要有自动切换为主的能力 • 容量调整时,不能产生数据迁移,且要在秒级完成 固定分区使用场景 • 任务计算过程中,会将同一个业务类型的数据发到同一个队列0 码力 | 22 页 | 2.26 MB | 1 年前3
 王强-Apache RocketMQ事务消息Available Soft-state Eventual Consistency 分布式事务解决⽅方案 XA 特点: 1. 两阶段提交 2. 仅商业化数据库⽀支持 3. ⽆无法满⾜足⾼高并发场景 分布式事务解决⽅方案 SAGA 特点: 1. 提交+补偿 2. 并发隔离性很难保证 分布式事务解决⽅方案 TCC 特点: 1. 特殊的两阶段提交 2. Try阶段检查/锁定资源 没有真正提交 Account service Send message Receive message 先执⾏行行本地事务还是先发送消息? 交易易型分布式事务的 RocketMQ使⽤用场景 分布式事务解决⽅方案 半消息 远程事务 特点: 1. 稳定,⽀支持⾼高并发 2. 回查机制可靠易易⽤用 3. 不不引⼊入额外的依赖 注意:回查⽅方法需要幂等 Broker 实现细节 Producer with0 码力 | 34 页 | 6.17 MB | 1 年前3 王强-Apache RocketMQ事务消息Available Soft-state Eventual Consistency 分布式事务解决⽅方案 XA 特点: 1. 两阶段提交 2. 仅商业化数据库⽀支持 3. ⽆无法满⾜足⾼高并发场景 分布式事务解决⽅方案 SAGA 特点: 1. 提交+补偿 2. 并发隔离性很难保证 分布式事务解决⽅方案 TCC 特点: 1. 特殊的两阶段提交 2. Try阶段检查/锁定资源 没有真正提交 Account service Send message Receive message 先执⾏行行本地事务还是先发送消息? 交易易型分布式事务的 RocketMQ使⽤用场景 分布式事务解决⽅方案 半消息 远程事务 特点: 1. 稳定,⽀支持⾼高并发 2. 回查机制可靠易易⽤用 3. 不不引⼊入额外的依赖 注意:回查⽅方法需要幂等 Broker 实现细节 Producer with0 码力 | 34 页 | 6.17 MB | 1 年前3
 万亿级数据洪峰下的消息引擎Apache RocketMQ低延迟分布式存储系统 – PageCache的毛刺解决方案 Java Heap Lock Page Cache Disk Request Request Request Request Request Request 万级请求/秒/单机 Direct Memory 1.4万亿 低延迟分布式存储系统 – PageCache的毛刺解决方案 ���������������� ���� ������� DirectMemory� ���� ������ ������ 1.4万亿 低延迟分布式存储系统 – PageCache的毛刺解决方案小结 1.4万亿 低延迟分布式存储系统 – PageCache的毛刺解决方案小结 操作系统Page Cache Radix Tree 自旋锁,产生几秒的大毛刺 如果遇到坏盘,可能Block若干分钟,对系统产生致命影响。 操作系统Page0 码力 | 35 页 | 993.29 KB | 1 年前3 万亿级数据洪峰下的消息引擎Apache RocketMQ低延迟分布式存储系统 – PageCache的毛刺解决方案 Java Heap Lock Page Cache Disk Request Request Request Request Request Request 万级请求/秒/单机 Direct Memory 1.4万亿 低延迟分布式存储系统 – PageCache的毛刺解决方案 ���������������� ���� ������� DirectMemory� ���� ������ ������ 1.4万亿 低延迟分布式存储系统 – PageCache的毛刺解决方案小结 1.4万亿 低延迟分布式存储系统 – PageCache的毛刺解决方案小结 操作系统Page Cache Radix Tree 自旋锁,产生几秒的大毛刺 如果遇到坏盘,可能Block若干分钟,对系统产生致命影响。 操作系统Page0 码力 | 35 页 | 993.29 KB | 1 年前3
 万亿级数据洪峰下的消息引擎 Apache RocketMQ低延迟分布式存储系统 – PageCache的毛刺解决方案 Java Heap Lock Page Cache Disk Request Request Request Request Request Request 万级请求/秒/单机 Direct Memory 1.4万亿 低延迟分布式存储系统 – PageCache的毛刺解决方案 ���������������� ���� ������� DirectMemory� ���� ������ ������ 1.4万亿 低延迟分布式存储系统 – PageCache的毛刺解决方案小结 1.4万亿 低延迟分布式存储系统 – PageCache的毛刺解决方案小结 操作系统Page Cache Radix Tree 自旋锁,产生几秒的大毛刺 如果遇到坏盘,可能Block若干分钟,对系统产生致命影响。 操作系统Page0 码力 | 35 页 | 5.82 MB | 1 年前3 万亿级数据洪峰下的消息引擎 Apache RocketMQ低延迟分布式存储系统 – PageCache的毛刺解决方案 Java Heap Lock Page Cache Disk Request Request Request Request Request Request 万级请求/秒/单机 Direct Memory 1.4万亿 低延迟分布式存储系统 – PageCache的毛刺解决方案 ���������������� ���� ������� DirectMemory� ���� ������ ������ 1.4万亿 低延迟分布式存储系统 – PageCache的毛刺解决方案小结 1.4万亿 低延迟分布式存储系统 – PageCache的毛刺解决方案小结 操作系统Page Cache Radix Tree 自旋锁,产生几秒的大毛刺 如果遇到坏盘,可能Block若干分钟,对系统产生致命影响。 操作系统Page0 码力 | 35 页 | 5.82 MB | 1 年前3
共 8 条
- 1













