Apache RocketMQ 从入门到实战1.1 RocketMQ 核心概念扫盲篇 < 16 使用过程中,应用程序需要区分系统异常、业务异常,如果是不符合业务规则导致的异常, 则重试多少次都无法消费成功,这个时候一定要告警机制,及时进行人为干预,否则消费会 积压。 三、事务消息 事务消息并不是为了解决分布式事务,而是提供消息发送与业务落库的一致性,其实现 原理就是一次分布式事务的具体运用,请看如下示例: 上述伪代码中,将订单存储关系型数据库中和将消息发送到 一、背景 上周六的 19:00,接到项目反馈,他们的项目从昨天的 23:00 就停止消费了,而整个 集群没有出现异常,故此种情况更多的是因为项目组的原因,由于业务已积压将近一天,由 于项目在昨天 20:00 发过变更,故为了快速恢复业务,项目组首先决定将版本进行回退, 回退后通过 rocketmq-console 查看消费组的消费 TPS,却显示为 0,如图所示: 乍一看,第一时间得出应用还未恢复,就开始去查看相关的启动日志 通过追踪源码来寻求答案,如果大家想急于答案,可以跳过问题分析,直接查看本文末尾的 问题解答部分。 通过本文的阅读,您将获得如下信息: 1. RocketMQ 消费 TPS 的收集与计算逻辑。 2. RocketMQ 监控指标的设计思路。 3. RocketMQ 主从同步,消费者从主服务器拉取还是从从服务器拉取的判断逻辑。 本文来自『中间件兴趣圈』公众号,仅作技术交流,未授权任何商业行为。 51 > 1.5 踩坑记:rocketmq-console0 码力 | 165 页 | 12.53 MB | 1 年前3
RocketMQ v3.2.4 开发指南commonmq v1.0 = Notify + RocketMQ + B2B 个性化需求 为 B2B 应用提供消息服务 3 与业术语 Producer 消息生产者,负责产生消息,一般由业务系统负责产生消息。 Consumer 消息消费者,负责消费消息,一般是后台系统负责异步消费。 Push Consumer Consumer 的一种,应用通常吐 Consumer 普通顺序消息 顺序消息的一种,正常情冴下可以保证完全的顺序消息,但是一旦収生通信异常,Broker 重启,由亍队列 总数収生发化,哈希叏模后定位的队列会发化,产生短暂的消息顺序丌一致。 如果业务能容忍在集群异常情冴(如某个 Broker 宕机戒者重启)下,消息短暂的乱序,使用普通顺序方 式比较合适。 严格顺序消息 顺序消息的一种,无论正常异常情冴都能保证顺序,但是牺牲了分布式 绝大部分的优兇级问题,但是对业务的优兇级精确性做了妥协。 2) 严格的优兇级,优兇级用整数表示,例如 0 ~ 65535,返种优兇级问题一般使用丌同 topic 解决就非常丌合 项目开源主页:https://github.com/alibaba/RocketMQ 5 适。如果要让 MQ 解决此问题,会对 MQ 的性能造成非常大的影响。返里要确保一点,业务上是否确实需 要返种严格的0 码力 | 52 页 | 1.61 MB | 1 年前3
基于Apache APISIX 与RocketMQ 构建云原生一体化架构APISIX 构建云原生接入体系 CONTENT Apache RocketMQ 简介 01 业务消息领域挑战 • 核心链路,稳定性要求高、时延敏感 • 容量峰值具有随机性,弹性要求高 • 业务场景复杂、集成要求尽可能简单 • 运维及流量调拨要求高 极简架构 高性能 金融级高可靠 打造业务消息领域首选 零依赖 可扩展 低延迟 高吞吐 强同步刷盘 ACK 机制 普通消息 普通消息 顺序消息 延迟消息 事务消息 重试消息 死信消息 设计思想: 1.消息不丢、高可靠是架构的基础 2.时延优先,兼顾吞吐 3.收敛业务共性问题,提供丰富的业务消息类型 4.注重可运维性、弹性扩缩、流量调拨能力建设 RocketMQ 简介 2022 2007 2012 2016 2017 2018 N otify Born from multicolored stone project gRPC 协议 • 无状态 Pop 消费模式,多语言友好,易集成 从业务走向数据: • 事件流场景支撑 • 面向 SQL 的轻量级实时计算引擎 可分可合的存储计算分离: • Broker 升级为真正的无状态服务节点,无 binding • Broker和Store节点分离部署、独立扩缩 • 可分可合,适应多种业务场景,降低运维负担 云原生基础设施: • 可观测性能力云原生化,OpenTelemetry0 码力 | 22 页 | 2.26 MB | 1 年前3
消息中间件RocketMQ原理解析 - 斩秋比如购买流程(1)下单(2)支付(3)支付成功,这三个消息需要根据 特定规则将这个三个消息按顺序发送到一个 queue 如何实现把顺序消息发送到同一个 queue: 一般消息是通过轮询所有队列发送的,顺序消息可以根据业务比如说订单号 orderId 相同的消息发送到同一个队列, 或者同一用户 userId 发送到同一队列等等 messageQueueList [orderId%messageQueueList LocalTransactionExecuter , 处 理 本 地 事 物 逻 辑 返 回 处 理 的 事 物 状 态 LocalTransactionState 3) 二阶段,处理完本地事物中业务得到事物状态, 根据 offset 查找到 commitLog 中 的 prepared 消息,设置消息状态 commitType 或者 rollbackType , 让后将信息添加到 commitLog consumer 通过长轮询拉取消息后回调 MessageListener 接口实现完成消费, 应用系统只要 MessageListener 完成业务逻辑即可 2. Pull 方式:完全由业务系统去控制,定时拉取消息,指定队列消费等等, 当然这里需要 业务系统去根据自己的业务需求去实现 下面介绍默认以 push 方式为主, 因为绝大多数是由 push 消费方式来使用 rocketmq 的。0 码力 | 57 页 | 2.39 MB | 1 年前3
rocketmq 服务部署tore-a/abort # commitLog每个文件的大小 默认1G mapedFileSizeCommitLog=1073741824 # ConsumeQueue每个文件默认存30w条,根据业务情况调整 mapedFileSizeConsumeQueue=300000 2、配置slave节点 conf/2m-2s-async/broker-b-s.properties # 集群名称 b tore-b/abort # commitLog每个文件的大小 默认1G mapedFileSizeCommitLog=1073741824 # ConsumeQueue每个文件默认存30w条,根据业务情况调整 mapedFileSizeConsumeQueue=300000 先把两个节点 name server 启动 nohup /Users/gitsilence/JavaTools/rocketmq/rocketmq-4 tore-a/abort # commitLog每个文件的大小 默认1G mapedFileSizeCommitLog=1073741824 # ConsumeQueue每个文件默认存30w条,根据业务情况调整 mapedFileSizeConsumeQueue=300000 2、配置 slave 节点,conf/2m-2s-async/broker-a-s.properties # 集群名称0 码力 | 11 页 | 284.35 KB | 1 年前3
Apache RocketMQ 介绍和灵活的可伸缩性。它的一个重要特性是支持非日志类型的可靠消息传送,非常适合运用在金融和电 商务领域。目前他是Apache社区的顶级项目,在全球有超过100家公司在其业务中使用RocketMQ 开源版本。 诞生 RocketMQ起源于阿里巴巴。阿里巴巴最初由于业务需求,需要使用消息中间件。早期使用过Notify ActiveMQ等。但在需求不断膨胀的情况下,ActiveMQ IO模块遇到了瓶颈,几经努力但改善成果不0 码力 | 5 页 | 375.48 KB | 1 年前3
共 6 条
- 1













