Apache RocketMQ 从入门到实战
Apache RocketMQ 作为一款高吞吐,抗万亿消息堆积的云原生消息平台,目前已 经被国内 75% 以上互联网、金融等公司所采用,逐渐成为企业 IT 架构的核心基础设施。 丁威老师作为资深架构师,在分布式架构、存储方面功底深厚,目前在企业内部负责着 日均千亿级消息流转的 RocketMQ 集群。本书不仅由浅入深的介绍了 RocketMQ 的架 构与实现,而且包含了多年线上超大规模集 其实我一开始连我自己也没有意识到我正在参与一个开源项目,直到我在冯嘉大神为我 写的序言中给了我一个新的称号:RocketMQ 布道师,从而才真正了解到参与开源的另外 一种方式:做一个开源项目的传播者,让更多人更容易的应用它,即降低大众对它的使用门 槛。 本文来自『中间件兴趣圈』公众号,仅作技术交流,未授权任何商业行为。 开篇:我的另一种参与 RocketMQ 开源社区的方式 < 8 有了新的称号,那就得更加努力,朝着优秀努力,在 q10 q11 c3: q12 q13 q14 q15 本文来自『中间件兴趣圈』公众号,仅作技术交流,未授权任何商业行为。 15 > 1.1 RocketMQ 核心概念扫盲篇 上述整个过程无需应用程序干预,由 RocketMQ 完成。大概的做法就是将将原先分配 给自己但这次不属于的队列进行丢弃,新分配的队列则创建新的拉取任务。 3. 消费进度 消费者消费一条消息后需要记录消费的位置,这样在消费端重启的时候,继续从上一次0 码力 | 165 页 | 12.53 MB | 1 年前3RocketMQ v3.2.4 开发指南
taobao.metaq v3.0 = RocketMQ + 淘宝个性化需求 为淘宝应用提供消息服务 项目开源主页:https://github.com/alibaba/RocketMQ 2 com.alipay.zpullmsg v1.0 = RocketMQ + 支付宝个性化需求 为支付宝应用提供消息服务 com.alibaba.commonmq v1.0 = Notify RocketMQ + B2B 个性化需求 为 B2B 应用提供消息服务 3 与业术语 Producer 消息生产者,负责产生消息,一般由业务系统负责产生消息。 Consumer 消息消费者,负责消费消息,一般是后台系统负责异步消费。 Push Consumer Consumer 的一种,应用通常吐 Consumer 对象注册一个 Listener 接口,一旦收到消息,Consumer 接口,一旦收到消息,Consumer 对象立 刻回调 Listener 接口方法。 Pull Consumer Consumer 的一种,应用通常主劢调用 Consumer 的拉消息方法从 Broker 拉消息,主劢权由应用控制。 Producer Group 一类 Producer 的集合名称,返类 Producer 通常収送一类消息,丏収送逡辑一致。 Consumer0 码力 | 52 页 | 1.61 MB | 1 年前3Apache RocketMQ on Amazon Web Services
RocketMQ 的应用程 序目录 3 /home/ec2-user/rocketmq-deploy/install.log 部署脚本的安装日志,如果 有错误可以查看这个日志 4 /home/ec2-user/rocketmq-deploy/rocketmq-console-ng-1.0.0.jar Apache RocketMQ Console 的 应用程序 Broker: 1-bin-release or /home/ec2-user/rocketmq-deploy/rocketmq-all-4.8.0-bin-release Apache RocketMQ 的应用程 序目录 3 /home/ec2-user/rocketmq-deploy/install.log 部署脚本的安装日志,如果 有错误可以查看这个日志 4 /home/ec2-us 件存放目录 如何使用浏览器查看 Apache RocketMQ 的 Web Console 当前部署方案在每个 Nameserver 的 instance 上都安装了 Web Console 的应用,但是因 为 Nameserver 的 instance 是运⾏在 private subnet,所以无法直接 通过浏览器访问 Nameserver 私有 IP 的 8080 端⼝访问,请按照下面的步骤建立和0 码力 | 18 页 | 1.55 MB | 1 年前3快速部署高可用的Apache RocketMQ 集群 - Amazon S3
release or /home/ec2-user/rocketmq-deploy/rocketmq-all-4.8.0-bin- release Apache RocketMQ 的应用 程序目录 3 /home/ec2-user/rocketmq-deploy/install.log 部署脚本的安装日志,如果 有错误可以查看这个日志 Page 16 of 4 /home/ec2-user/rocketmq-deploy/rocketmq-console-ng- 1.0.0.jar Apache RocketMQ Console 的应用程序 Broker 目录 说明 1 /home/ec2-user/rocketmq-deploy/ Apache RocketMQ 安装目 录 2 /home/e release or /home/ec2-user/rocketmq-deploy/rocketmq-all-4.8.0-bin- release Apache RocketMQ 的应用 程序目录 3 /home/ec2-user/rocketmq-deploy/install.log 部署脚本的安装日志,如果 有错误可以查看这个日志 4 /home/ec2-us0 码力 | 21 页 | 2.57 MB | 1 年前3消息中间件RocketMQ原理解析 - 斩秋
Consumer 消费拉取的消息的方式有两种 1. Push 方式:rocketmq 已经提供了很全面的实现, consumer 通过长轮询拉取消息后回调 MessageListener 接口实现完成消费, 应用系统只要 MessageListener 完成业务逻辑即可 2. Pull 方式:完全由业务系统去控制,定时拉取消息,指定队列消费等等, 当然这里需要 业务系统去根据自己的业务需求去实现 返回结果 pullResult 更新从哪个 broker(master 还是 slave)拉取消息 反序列化消息 消息过滤 消息中放入队列最大最小 offset, 方便应用来感知消息堆积度 将消息加入正在处理队列 ProcessQueue 将消息提交到消费消息服务 ConsumeMessageService 流控处理, 如果 pullInterval 参数大于 ackIndex 来标记 成功消费到哪里了 消费失败, ackIndex 设置为-1 广播模式发送失败的消息丢弃, 广播模式对于失败重试代价过高,对整个集 群性能会有较大影响,失败重试功能交由应用处理 集群模式, 将消费失败的消息一条条的发送到 broker 的重试队列中去,如果 此时还有发送到重试队列发送失败的消息,那就在 cosumer 的本地线程定时 5 秒钟以后重试重新消费消息, 在走一次上面的消费流程。0 码力 | 57 页 | 2.39 MB | 1 年前3基于Apache APISIX 与RocketMQ 构建云原生一体化架构
ESSD 云盘 SA TA 独占/混部/独立交付…… • 集群节点异常成为常态 • 依赖服务随时可能在进行迁移或重启 • 对弹性的要求开始从物理资源变为逻辑资源 • IaaS 的多样性对应用交付部署提出了更高要求 • 可运维性、可观测性带来了更大挑战 • 多租环境带来了更高的网络及安全隔离要求 • 无限资源 vs 有限成本 • 冗长的请求链路,膨胀的技术栈 ……. 面向失败0 码力 | 22 页 | 2.26 MB | 1 年前3Apache RocketMQ 介绍
RocketMQ采用长轮询,消息投递延迟通常在几个毫秒左右。 ● RocketMQ单机最高支持5万个队列,且负载不会发生明显递增。 ● RocketMQ支持消费失败重试,这个特性非常适合运用在充值方面的应用。 ● RocketMQ支持严格的意义上的消息顺序。即时在一台Broker宕机后,消息发送会失败,但是不会 序。 ● RocketMQ支持定时消息 ● RocketMQ支持分布式事务消息 ●0 码力 | 5 页 | 375.48 KB | 1 年前3万亿级数据洪峰下的消息引擎Apache RocketMQ
双十一当天高可用要求 ~~ 100% 低延迟的分布式存储系统 在线熔断机制 完善的容量评估 SLA=99.999% 1.4万亿 在线熔断机制 ①消息服务器 ②消息服务器 ③消息服务器 ④消息服务器 应用 规则 1. 最多只能隔离 30%的机器。 2. 响应时间过长, 开始隔离1分钟 3. 调用抛异常隔 离1分钟 4. 如果隔离的服 务器超过30%, 则有部分调用 会进入隔离列 表中最早隔离0 码力 | 35 页 | 993.29 KB | 1 年前3万亿级数据洪峰下的消息引擎 Apache RocketMQ
双十一当天高可用要求 ~~ 100% 低延迟的分布式存储系统 在线熔断机制 完善的容量评估 SLA=99.999% 1.4万亿 在线熔断机制 ①消息服务器 ②消息服务器 ③消息服务器 ④消息服务器 应用 规则 1. 最多只能隔离 30%的机器。 2. 响应时间过长, 开始隔离1分钟 3. 调用抛异常隔 离1分钟 4. 如果隔离的服 务器超过30%, 则有部分调用 会进入隔离列 表中最早隔离0 码力 | 35 页 | 5.82 MB | 1 年前3
共 9 条
- 1