基于Apache APISIX 与RocketMQ 构建云原生一体化架构独占/混部/独立交付…… • 集群节点异常成为常态 • 依赖服务随时可能在进行迁移或重启 • 对弹性的要求开始从物理资源变为逻辑资源 • IaaS 的多样性对应用交付部署提出了更高要求 • 可运维性、可观测性带来了更大挑战 • 多租环境带来了更高的网络及安全隔离要求 • 无限资源 vs 有限成本 • 冗长的请求链路,膨胀的技术栈 ……. 面向失败 松散耦合 基础设施解耦 极致弹性 consumer 加快数据读取速度 你集群是正常的,但我消费就是出问题了,怎么办!? 无损弹性扩缩 固定分区面临的挑战 • 无切换架构中,主节点宕机,备节点不可写,分区数量减少 • 容量不足,Kafka 分区迁移时,会导致网络风暴,耗时极长 问题重点 • 在主节点宕机时,备节点要有自动切换为主的能力 • 容量调整时,不能产生数据迁移,且要在秒级完成 固定分区使用场景 • 任务0 码力 | 22 页 | 2.26 MB | 1 年前3
Apache RocketMQ 从入门到实战contributions 非常容易,提交一个 PR 并被通过即可,甚至于 提交一个文档被接受也同样可以,难的是持续贡献,最终被开源项目的 PMC 认为对该项目 有着突出贡献。 我比较“苦逼”,在带娃方面我的资源只有我老婆,父母在老家无法分身,故下班后我 没有连续的空闲时间专心投入一项任务中,而开源最需要的是精益求精,不只是需要完成功 能,而是要编写结构优良的代码,设计所占据的时间比代码开发时间要多的多,故我个人认 是否繁忙,如果忙, 则返回 true。想必看到这里大家肯定与我一样好奇,RocketMQ 是如何判断 pageCache 是否繁忙呢?下面会重点分析。 代码@2:transientStorePool 是否不足。 isOSPageCacheBusy() DefaultMessageStore#isOSPageCacheBusy() public boolean isOSPageCacheBusy() 到用户、资源、权限、角色等概念,那在 RocketMQ 中上述会对应哪些对象呢? 用户 用户是访问控制的基础要素,也不难理解,RocketMQ ACL 必然也会引入用户的概 念,即支持用户名、密码。 资源 资源,需要保护的对象,在 RocketMQ 中,消息发送涉及的 Topic、消息消费涉及的 消费组,应该进行保护,故可以抽象成资源。 权限 针对资源,能进行的操作,0 码力 | 165 页 | 12.53 MB | 1 年前3
万亿级数据洪峰下的消息引擎Apache RocketMQ万亿洪峰下有哪些问题 机器假死 IO Util,Load飙高 磁盘响应慢 消息大量堆积 网卡故障,甚至流量跑满 磁盘损坏 零点之战:发布消息SLA要求100% 慢请求开始大量增加 分布式系统雪崩 容量不足,单机热点 问题的本质: 可用性无限接近100% 可靠性无限接近100% 可用性 > 可靠性 1.4万亿 双十一当天高可用要求 ~~ 100% ???????????? = ????0 码力 | 35 页 | 993.29 KB | 1 年前3
万亿级数据洪峰下的消息引擎 Apache RocketMQ万亿洪峰下有哪些问题 机器假死 IO Util,Load飙高 磁盘响应慢 消息大量堆积 网卡故障,甚至流量跑满 磁盘损坏 零点之战:发布消息SLA要求100% 慢请求开始大量增加 分布式系统雪崩 容量不足,单机热点 问题的本质: 可用性无限接近100% 可靠性无限接近100% 可用性 > 可靠性 1.4万亿 双十一当天高可用要求 ~~ 100% ???????????? = ????0 码力 | 35 页 | 5.82 MB | 1 年前3
Apache RocketMQ on Amazon Web ServicesCloudFormation 提供了一种创建和管理相关 AMAZON WEB SERVICES 资源的简 便方法,并通过有序 且可预测的方式进⾏资源配置和更新。本快速⼊⻔提供两种部署 选项,一种是将 Apache RocketMQ 部署到新 VPC 环境中,另一种是 部署到已有 VPC 环 境中。使用默认参数为在新 VPC 环境中 部署以下资源。如果您选择的是将此方案部署 到已有 VPC 中,将跳过 (不创建) 带有星号(*)的组件,并提⽰ AMAZON WEB SERVICES(宁 夏)区域为 3 个,由光环新网运营的 AMAZON WEB SERVICES(北京)区域为 2 个)。 • (*) 在公有⼦网中,允许私有⼦网中的资源(RocketMQ 实例)进⾏出站 Internet 连接的 NAT Gateway。 • (*) 在公有⼦网中,Auto Scaling 组中的允许 SSH 访问的堡垒主机。默认情况 下将 QuickStart Configuration 24 Quick Start S3 Bucket Name QSS3BucketName aws- cnquickstart 资源所在的 S3 存储 桶。请不要 更改此选 项,除⾮您对启动脚 RocketMQ 快速部署脚本做了自 定义化并且 上传到了您自己的 桶中。 25 Quick Start S30 码力 | 18 页 | 1.55 MB | 1 年前3
快速部署高可用的Apache RocketMQ 集群 - Amazon S3CloudFormation 提供了⼀种创建和管理相关 AMAZON WEB SERVICES 资源的简便⽅法,并通过有序 且可预测的⽅式进⾏资源配置和更新。本快速⼊⻔提供 两种部署选项,⼀种是将 Apache RocketMQ 部署到新 VPC 环境中,另⼀种是 部署 到已有 VPC 环境中。使⽤默认参数为在新 VPC 环境中 部署以下资源。如果您选择的 是将此⽅案部署到已有 VPC 中,将跳过 (不创建) 带有星号(*)的组件,并提⽰ 跨越多个可⽤区的公有⼦⽹和私有⼦⽹的 VPC(由西云数据运营的 亚 马逊云科技(宁 夏)区域为 3 个,由光环新⽹运营的 亚马逊云科技(北 京)区域为 2 个)。 • (*) 在公有⼦⽹中,允许私有⼦⽹中的资源(RocketMQ 实例)进⾏出站 Internet 连接的 NAT Gateway。 • (*) 在公有⼦⽹中,Auto Scaling 组中的允许 SSH 访问的堡垒主机。默认 情况下将 Configuration 24 Quick Start S3 Bucket Name QSS3BucketName aws- cnquickstart 资源所在的 S3 存储 桶。请不要 更改此选 项,除⾮您对启动脚 RocketMQ 快速部署脚本做了 ⾃定义化并且 上传到了您⾃⼰ 的桶中。 25 Quick Start S30 码力 | 21 页 | 2.57 MB | 1 年前3
RocketMQ v3.2.4 开发指南(4). 机器掉电,但是能立即恢复供电情冴。 (5). 机器无法开机(可能是 cpu、主板、内存等关键设备损坏) (6). 磁盘设备损坏。 (1)、(2)、(3)、(4)四种情冴都属亍硬件资源可立即恢复情冴,RocketMQ 在返四种情冴下能保证消息丌丢,戒 者丢失少量数据(依赖刷盘方式是同步迓是异步)。 (5)、(6)属亍单点故障,丏无法恢复,一旦収生,在此单点上的消息全部丢失。RocketMQ com/alibaba/RocketMQ 29 1. 使用 CPU 资源来换叏网卡流量资源 2. FilterServer 不 Broker 部署在同一台机器,数据通过本地回环通信,丌走网卡 3. 一台 Broker 部署多个 FilterServer,充分利用 CPU 资源,因为单个 Jvm 难以全面利用高配的物理机 Cpu 资源 4. 因为过滤代码使用 Java 诧言来编写,应用几乎 诧言迕行作为过滤表达式是一个双刃剑,方便了应用的过滤操作,但是带来了服务器端的安全风险。 需要应用来保证过滤代码安全,例如在过滤程序里尽可能丌做申请大内存,创建线程等操作。避免 Broker 服 务器収生资源泄漏。 使用方式参见 Github 例子 https://github.com/alibaba/RocketMQ/blob/develop/rocketmq-example/src/main0 码力 | 52 页 | 1.61 MB | 1 年前3
王强-Apache RocketMQ事务消息⽆无法满⾜足⾼高并发场景 分布式事务解决⽅方案 SAGA 特点: 1. 提交+补偿 2. 并发隔离性很难保证 分布式事务解决⽅方案 TCC 特点: 1. 特殊的两阶段提交 2. Try阶段检查/锁定资源 没有真正提交 3. 增加了了⼀一个状态处理理,开发变复杂 4. CC需要幂等,能够⽀支持重试 5. 如果CC重试不不成功/超时,需要⼿手⼯工⼲干预 Apache RocketMQ 消息事务0 码力 | 34 页 | 6.17 MB | 1 年前3
共 8 条
- 1













