基于Apache APISIX 与RocketMQ 构建云原生一体化架构业务场景复杂、集成要求尽可能简单 • 运维及流量调拨要求高 极简架构 高性能 金融级高可靠 打造业务消息领域首选 零依赖 可扩展 低延迟 高吞吐 强同步刷盘 ACK 机制 普通消息 顺序消息 延迟消息 事务消息 重试消息 死信消息 设计思想: 1.消息不丢、高可靠是架构的基础 2.时延优先,兼顾吞吐 3.收敛业务共性问题,提供丰富的业务消息类型 4.注重可运维性、弹性扩缩、流量调拨能力建设 RocketMQ 加快数据读取速度 你集群是正常的,但我消费就是出问题了,怎么办!? 无损弹性扩缩 固定分区面临的挑战 • 无切换架构中,主节点宕机,备节点不可写,分区数量减少 • 容量不足,Kafka 分区迁移时,会导致网络风暴,耗时极长 问题重点 • 在主节点宕机时,备节点要有自动切换为主的能力 • 容量调整时,不能产生数据迁移,且要在秒级完成 固定分区使用场景 • 任务计算过程中,会将同一个业务类型的数据发到同一个队列 任务计算过程中,会将同一个业务类型的数据发到同一个队列 • Binlog 等数据同步过程中,需要保证严格顺序 RAFT 存储支持:自动主从切换,强一致性保证 逻辑队列:秒级无损弹性扩缩,无数据复制,流量精准调度 消息与流融合索引支持 核心问题 • 消息体小且存储结构面向单 条消息,导致提升吞吐困难 • 在进行状态存储时,无 KV 语义支撑 挑战 • Commitlog 格式存储, 统一复制算法 •0 码力 | 22 页 | 2.26 MB | 1 年前3
RocketMQ v3.2.4 开发指南Failover 特性,即 Broker 集群中只 要有一台机器丌可用,则整个集群都丌可用,服务可用性大大降低。 如果服务器部署为同步双写模式,此缺陷可通过备机自劢切换为主避免,丌过仍然会存在几分钟的服务丌 可用。(依赖同步双写,主备自劢切换,自劢切换功能目前迓未实现) 目前已知的应用只有数据库 binlog 同步强依赖严格顺序消息,其他应用绝大部分都可以容忍短暂乱序,推 荐使用普通的顺序消息。 过滤程序做过滤,过滤完成后迒回给 Consumer。 总结: 项目开源主页:https://github.com/alibaba/RocketMQ 29 1. 使用 CPU 资源来换叏网卡流量资源 2. FilterServer 不 Broker 部署在同一台机器,数据通过本地回环通信,丌走网卡 3. 一台 Broker 部署多个 FilterServer,充分利用 CPU 资源,因为单个 服务发现(Name Server) Name Server 是与为 RocketMQ 设计的轻量级名称服务,代码小亍 1000 行,具有简单、可集群横吐扩展、无状 态等特点。将要支持的主备自劢切换功能会强依赖 Name Server。 11 客户端使用挃南 11.1 客户端如何寻址 RocketMQ 有多种配置方式可以令客户端找到 Name Server, 然后通过 Name Server0 码力 | 52 页 | 1.61 MB | 1 年前3
Apache RocketMQ 从入门到实战踩坑记:rocketmq-console 消费 TPS 为 0,但消息积压数却在降低是个什么 “鬼” 49 1.6 RocketMQ 一个新的消费组初次启动时从何处开始消费呢? 64 1.7 一次 RocketMQ 进程自动退出排查经验分享 78 1.8 RocketMQ 主题扩分片后遇到的坑 82 1.9 RocketMQ 消息发送 system busy、broker busy 原因分析与解决方案坑 91 1 1.11 从年末生产故障解锁 RocketMQ 集群部署的最佳实践 108 1.12 RocketMQ 一行代码造成大量消息丢失 115 1.13 RocketMQ DLedger 多副本即主从切换实战 121 1.14 RocketMQ msgId 与 offsetMsgId 释疑 131 1.15 RocketMQ ACL 使用指南 141 1.16 RocketMQ 消息轨迹-设计篇 有了新的称号,那就得更加努力,朝着优秀努力,在 2019 年我又陆续发表了 20 几篇 关于 RocketMQ 相关的文章,这些文章含金量极高,不仅及时跟进了 RocketMQ4.3.0 之后的新特性:消息轨迹、ACL、主从切换等机制,更是发表了数篇实战类文章,详细指 出在生产环境下一些使用误区,更是输出了几篇生产环境真实故障与解决方案。最终于 20 19 年 RocketMQ 官方社区授予我优秀布道师荣誉称号。 RocketMQ0 码力 | 165 页 | 12.53 MB | 1 年前3
Apache RocketMQ on Amazon Web Services实例,每个 Broker 实例会在 三个 Broker Instance 之间形成一个基于 Raft 的高可用 dledger 集群,如果其中一个 Broker 实例因故障无法提供服务,Raft 协议会自动在另外两个 Instance 中选择一个作 为 Master 继续提供服务从而达到高可用的效果,下图是部署完的一个架构实例图 Page 4 of 18 • (*) 有错误可以查看这个日志 4 /home/ec2-user/rocketmq-deploy/rocketMQ-config/ Apache RocketMQ Broker 程 序的配置文件,由部署脚本 自动⽣成 Page 14 of 18 5 /home/ec2-user/rocketmq-deploy/rmqstore Apache RocketMQ 的本地文 件存放目录 ec2-user@ec2-54-223- 36-247.cn-north-1.compute.amazonaws.com.cn 2. 设置好 ssh Tunnel 之后需要在浏览器中设置 proxy,浏览器有很多自动选择 Proxy 的插件,本文使用 SwitchyOmega 作为例⼦。 3. 安装 SwitchyOmega 浏览器插件,Edge 浏览器请访问这个链接,Firefox 浏览器 访问这个链接,Chrome0 码力 | 18 页 | 1.55 MB | 1 年前3
快速部署高可用的Apache RocketMQ 集群 - Amazon S3实例,每个 Broker 实例会在三个 Broker Instance 之间形成一个基于 Raft 的高可用 dledger 集群,如果其中一个 Broker 实例 因故障无法提供服务,Raft 协议会自动在另外两个 Instance 中选择一个作为 Master 继续提供服务从而达到高可用的效果,下图是部署完的一个架构实例图 Page 4 of 21 • (*) 有错误可以查看这个日志 4 /home/ec2-user/rocketmq-deploy/rocketMQ-config/ Apache RocketMQ Broker 程序的配置文件,由部署脚 本自动生成 5 /home/ec2-user/rocketmq-deploy/rmqstore Apache RocketMQ 的本地 文件存放目录 如何使用浏览器查看 Apache RocketMQ ec2-user@ec2-54-223-36- 247.cn-north-1.compute.amazonaws.com.cn 2. 设置好 ssh Tunnel 之后需要在浏览器中设置 proxy,浏览器有很多自动选择 Proxy 的插件,本文使用 SwitchyOmega 作为例子。 3. 安装 SwitchyOmega 浏览器插件,Edge 浏览器请访问这个链接,Firefox 浏 览器访问这个链接,Chrome0 码力 | 21 页 | 2.57 MB | 1 年前3
消息中间件RocketMQ原理解析 - 斩秋1. 获取 ProcessQueue 判读是否 drop 的, drop 为 true 返回 2. 给 ProcessQueue 设置拉消息时间戳 3. 流量控制,正在消费队列中消息(未被消费的)超过阀值,稍后在执行拉消息 4. 流量控制,正在消费队列中消息的跨度超过阀值(默认 2000),稍后在消费 5. 根据 topic 获取订阅关系 6. 构建拉消息回调对象 PullBack, 从 这个临时 map 用来回滚消息和 commit 消 息来实现事物消费 调回调接口消费消息,返回状态对象 ConsumeOrderlyStatus 根据消费状态,处理结果 1) 非事物方式,自动提交 消息消息状态为 success: 调用 processQueue.commit 方法 获取 msgTreeMapTemp 的最后一个 key,表示提交的 offset0 码力 | 57 页 | 2.39 MB | 1 年前3
万亿级数据洪峰下的消息引擎Apache RocketMQ订阅消息峰值:数千万条/秒 堆积消息峰值:千亿条 消息中间件核心链路 1.4万亿 万亿洪峰下有哪些问题 机器假死 IO Util,Load飙高 磁盘响应慢 消息大量堆积 网卡故障,甚至流量跑满 磁盘损坏 零点之战:发布消息SLA要求100% 慢请求开始大量增加 分布式系统雪崩 容量不足,单机热点 问题的本质: 可用性无限接近100% 可靠性无限接近100% 可用性 >0 码力 | 35 页 | 993.29 KB | 1 年前3
万亿级数据洪峰下的消息引擎 Apache RocketMQ订阅消息峰值:数千万条/秒 堆积消息峰值:千亿条 消息中间件核心链路 1.4万亿 万亿洪峰下有哪些问题 机器假死 IO Util,Load飙高 磁盘响应慢 消息大量堆积 网卡故障,甚至流量跑满 磁盘损坏 零点之战:发布消息SLA要求100% 慢请求开始大量增加 分布式系统雪崩 容量不足,单机热点 问题的本质: 可用性无限接近100% 可靠性无限接近100% 可用性 >0 码力 | 35 页 | 5.82 MB | 1 年前3
rocketmq 服务部署参考consumer实例的数量,值过小不利于consumer负 均衡 defaultTopicQueueNums=8 # 是否允许broker自动创建Topic,生产建议关闭 autoCreateTopicEnable=true # 是否允许broker自动创建订阅组,生产建议关闭 autoCreateSubscriptionGroup=true # 设置brokerIp brokerIP1=192 参考consumer实例的数量,值过小不利于consumer负 均衡 defaultTopicQueueNums=8 # 是否允许broker自动创建Topic,生产建议关闭 autoCreateTopicEnable=true # 是否允许broker自动创建订阅组,生产建议关闭 autoCreateSubscriptionGroup=true # 设置brokerIp brokerIP1=192 参考consumer实例的数量,值过小不利于consumer负 均衡 defaultTopicQueueNums=8 # 是否允许broker自动创建Topic,生产建议关闭 autoCreateTopicEnable=true # 是否允许broker自动创建订阅组,生产建议关闭 autoCreateSubscriptionGroup=true # 设置brokerIp brokerIP1=1920 码力 | 11 页 | 284.35 KB | 1 年前3
共 9 条
- 1













