 Apache RocketMQ 从入门到实战版本后引入了多副本机制,即一个复制组(m-s)可以演变为基 于 raft 协议的复制组,复制组内部使用 raft 协议保证 broker 节点数据的强一致性,该部署 架构在金融行业用的比较多。 二、消息订阅模型 在 RocketMQ 的消息消费模式采用的是发布与订阅模式。 topic:一类消息的集合,消息发送者将一类消息发送到一个主题中,例如订单模块将 订单发送到 order_topic 中,而用户登录时,将登录事件发送到 rocketmq_offsets。 4. 消费模型 RocketMQ 提供了并发消费、顺序消费两种消费模型。 并发消费:对一个队列中消息,每一个消费者内部都会创建一个线程池,对队列中的消 息多线程处理,即偏移量大的消息比偏移量小的消息有可能先消费。 顺序消费:在某一项场景,例如 MySQL binlog 场景,需要消息按顺序进行消费。在 RocketMQ 中提供了基于队列的顺序消费模型,即尽管一个消费组中的消费者会创建一个 费者会创建一个 多线程,但针对同一个 Queue,会加锁。 温馨提示:并发消费模型中,消息消费失败默认会重试 16 次,每一次的间隔时间不一 样;而顺序消费,如果一条消息消费失败,则会一直消费,直到消费成功。故在顺序消费的 本文来自『中间件兴趣圈』公众号,仅作技术交流,未授权任何商业行为。 1.1 RocketMQ 核心概念扫盲篇 < 16 使用过程中,应用程序需要区分系统异常、业务异常,如果是不符合业务规则导致的异常,0 码力 | 165 页 | 12.53 MB | 1 年前3 Apache RocketMQ 从入门到实战版本后引入了多副本机制,即一个复制组(m-s)可以演变为基 于 raft 协议的复制组,复制组内部使用 raft 协议保证 broker 节点数据的强一致性,该部署 架构在金融行业用的比较多。 二、消息订阅模型 在 RocketMQ 的消息消费模式采用的是发布与订阅模式。 topic:一类消息的集合,消息发送者将一类消息发送到一个主题中,例如订单模块将 订单发送到 order_topic 中,而用户登录时,将登录事件发送到 rocketmq_offsets。 4. 消费模型 RocketMQ 提供了并发消费、顺序消费两种消费模型。 并发消费:对一个队列中消息,每一个消费者内部都会创建一个线程池,对队列中的消 息多线程处理,即偏移量大的消息比偏移量小的消息有可能先消费。 顺序消费:在某一项场景,例如 MySQL binlog 场景,需要消息按顺序进行消费。在 RocketMQ 中提供了基于队列的顺序消费模型,即尽管一个消费组中的消费者会创建一个 费者会创建一个 多线程,但针对同一个 Queue,会加锁。 温馨提示:并发消费模型中,消息消费失败默认会重试 16 次,每一次的间隔时间不一 样;而顺序消费,如果一条消息消费失败,则会一直消费,直到消费成功。故在顺序消费的 本文来自『中间件兴趣圈』公众号,仅作技术交流,未授权任何商业行为。 1.1 RocketMQ 核心概念扫盲篇 < 16 使用过程中,应用程序需要区分系统异常、业务异常,如果是不符合业务规则导致的异常,0 码力 | 165 页 | 12.53 MB | 1 年前3
 王强-Apache RocketMQ事务消息storage separating architecture� 典型应⽤用场景 ⾦金金融交易易 电⼦子商务 智能制造 分布式事务 异步解耦 IoT/IIoT 决策分析 实时计算 概念模型 Broker A Producer A Topic A Broker B Topic B ConsumerGroupA ConsumerGroupB Consumer 1 Consumer Producer B Consumer 1 Consumer 2 MessageQueue1 MessageQueue2 MessageQueue1 MessageQueue2 部署模型 组件细节 Broker Netty RemotingServer Netty Remoting Client NameServer All Info In Memory except KV RocketMQ的实现 • Cloud Native时代下消息系统的挑战 • Apache RocketMQ 简介 • Apache RocketMQ 存储设计 Cloud Native 的定义 • 设计,搭建和部署应⽤用的⽅方式 • 运⾏行行在云计算环境 IaaS • 快速,弹性 • 降低技术⻛风险 • 互操作性,易易部署,可监控管理理 消息系统挑战 • 传统设计和实现⽅方⾯面0 码力 | 34 页 | 6.17 MB | 1 年前3 王强-Apache RocketMQ事务消息storage separating architecture� 典型应⽤用场景 ⾦金金融交易易 电⼦子商务 智能制造 分布式事务 异步解耦 IoT/IIoT 决策分析 实时计算 概念模型 Broker A Producer A Topic A Broker B Topic B ConsumerGroupA ConsumerGroupB Consumer 1 Consumer Producer B Consumer 1 Consumer 2 MessageQueue1 MessageQueue2 MessageQueue1 MessageQueue2 部署模型 组件细节 Broker Netty RemotingServer Netty Remoting Client NameServer All Info In Memory except KV RocketMQ的实现 • Cloud Native时代下消息系统的挑战 • Apache RocketMQ 简介 • Apache RocketMQ 存储设计 Cloud Native 的定义 • 设计,搭建和部署应⽤用的⽅方式 • 运⾏行行在云计算环境 IaaS • 快速,弹性 • 降低技术⻛风险 • 互操作性,易易部署,可监控管理理 消息系统挑战 • 传统设计和实现⽅方⾯面0 码力 | 34 页 | 6.17 MB | 1 年前3
 RocketMQ v3.2.4 开发指南CORBA Notification 规范中,无此消费方式。 在 JMS 规范中,JMS point-to-point model 不乀类似,但是 RocketMQ 的集群消费功能大等亍 PTP 模型。 因为 RocketMQ 单个 Consumer Group 内的消费者类似亍 PTP,但是一个 Topic/Queue 可以被多个 Consumer Group 消费。  顺序消息 TOPIC_A TOPIC_B Producer Producer Consumer Consumer Consumer 图表 5-1 RocketMQ 是什么  是一个队列模型的消息中间件,具有高性能、高可靠、高实时、分布式特点。  Producer、Consumer、队列都可以分布式。  Producer 吐一些队列轮流収送消息,队列集合称为 Topic,Consumer 10.232.22.67 jmenv.taobao.net 推荐使用 HTTP 静态服务器寻址方式,好处是客户端部署简单,丏 Name Server 集群可以热升级。 11.2 自定义客户端行为 11.2.1 客户端 API 形式 DefaultMQProducer、TransactionMQProducer、DefaultMQPushConsumer、DefaultMQPullConsumer0 码力 | 52 页 | 1.61 MB | 1 年前3 RocketMQ v3.2.4 开发指南CORBA Notification 规范中,无此消费方式。 在 JMS 规范中,JMS point-to-point model 不乀类似,但是 RocketMQ 的集群消费功能大等亍 PTP 模型。 因为 RocketMQ 单个 Consumer Group 内的消费者类似亍 PTP,但是一个 Topic/Queue 可以被多个 Consumer Group 消费。  顺序消息 TOPIC_A TOPIC_B Producer Producer Consumer Consumer Consumer 图表 5-1 RocketMQ 是什么  是一个队列模型的消息中间件,具有高性能、高可靠、高实时、分布式特点。  Producer、Consumer、队列都可以分布式。  Producer 吐一些队列轮流収送消息,队列集合称为 Topic,Consumer 10.232.22.67 jmenv.taobao.net 推荐使用 HTTP 静态服务器寻址方式,好处是客户端部署简单,丏 Name Server 集群可以热升级。 11.2 自定义客户端行为 11.2.1 客户端 API 形式 DefaultMQProducer、TransactionMQProducer、DefaultMQPushConsumer、DefaultMQPullConsumer0 码力 | 52 页 | 1.61 MB | 1 年前3
 消息中间件RocketMQ原理解析 - 斩秋组成一个逻辑上连续的队 列 d) 加载事物模块 e) 加载存储检查点 加载${user.home} \store\checkpoint 这个文件存储了 3 个 long 类型的值来记录存储 模型最终一致的时间点,这个 3 个 long 的值为 physicMsgTimestamp 为 commitLog 最后刷盘的时间 logicMsgTimestamp 为 consumeQueue 最终刷盘的时间 协议分4部分,含义分别如下 1、大端4个字节整数,等于2、3、4长度总和 2、大端4个字节整数,等于3的长度 3、使用json序列化数据 4、应用自定义二进制序列化数据 Header 部分数据是通过 FastJson 序列化数据 请求自定义字段都会实现 CommandCustomHeader 接口, 在 RemotingCommand 序列化之前 会将 CommandCustomHeader CommandCustomHeader 的字段拷贝到 Header 的 extFields 中去, 让后在整体通过 Fastjson 序列化 Netty 通过 NettyEncoder、NettyDecoder 自定义实现将 RemotingCommand 转换成 byte[] NettyEncoder: NettyDecoder 五:通信层的整体交互0 码力 | 57 页 | 2.39 MB | 1 年前3 消息中间件RocketMQ原理解析 - 斩秋组成一个逻辑上连续的队 列 d) 加载事物模块 e) 加载存储检查点 加载${user.home} \store\checkpoint 这个文件存储了 3 个 long 类型的值来记录存储 模型最终一致的时间点,这个 3 个 long 的值为 physicMsgTimestamp 为 commitLog 最后刷盘的时间 logicMsgTimestamp 为 consumeQueue 最终刷盘的时间 协议分4部分,含义分别如下 1、大端4个字节整数,等于2、3、4长度总和 2、大端4个字节整数,等于3的长度 3、使用json序列化数据 4、应用自定义二进制序列化数据 Header 部分数据是通过 FastJson 序列化数据 请求自定义字段都会实现 CommandCustomHeader 接口, 在 RemotingCommand 序列化之前 会将 CommandCustomHeader CommandCustomHeader 的字段拷贝到 Header 的 extFields 中去, 让后在整体通过 Fastjson 序列化 Netty 通过 NettyEncoder、NettyDecoder 自定义实现将 RemotingCommand 转换成 byte[] NettyEncoder: NettyDecoder 五:通信层的整体交互0 码力 | 57 页 | 2.39 MB | 1 年前3
 Apache RocketMQ 介绍现和路由功能,每个NameServer存有全量的路由信息,提 对等的读写服务,支持快速扩缩容。 Broker负责消息存储,以Topic为纬度支持轻量级的队列,单机可以支撑上万队列规模,支持消息推 模型,具备多副本容错机制(2副本或3副本)、强大的削峰填谷以及上亿级消息堆积能力,同时可严 保证消息的有序性。除此之外,Broker还提供了同城异地容灾能力,丰富的Metrics统计以及告警机 。这些都是传统消息系统无法比拟的。 不言而喻。 ActiveMQ最初主要的开发者在LogicBlaze,现在主要开发红帽,是JMS规范的参考实现,也是Apach 旗下的老牌消息服务引擎。JMS虽说是一个API级别的协议,但其内部还是定义了一些实现约束,不 缺少多语言支撑。ActiveMQ的生态堪称丰富多彩,在该Apache顶级项目下,拥有不少子项目,包括 HornetMQ演变而来的Artemis,基于Scala号称下一代AMQ的Apollo等。0 码力 | 5 页 | 375.48 KB | 1 年前3 Apache RocketMQ 介绍现和路由功能,每个NameServer存有全量的路由信息,提 对等的读写服务,支持快速扩缩容。 Broker负责消息存储,以Topic为纬度支持轻量级的队列,单机可以支撑上万队列规模,支持消息推 模型,具备多副本容错机制(2副本或3副本)、强大的削峰填谷以及上亿级消息堆积能力,同时可严 保证消息的有序性。除此之外,Broker还提供了同城异地容灾能力,丰富的Metrics统计以及告警机 。这些都是传统消息系统无法比拟的。 不言而喻。 ActiveMQ最初主要的开发者在LogicBlaze,现在主要开发红帽,是JMS规范的参考实现,也是Apach 旗下的老牌消息服务引擎。JMS虽说是一个API级别的协议,但其内部还是定义了一些实现约束,不 缺少多语言支撑。ActiveMQ的生态堪称丰富多彩,在该Apache顶级项目下,拥有不少子项目,包括 HornetMQ演变而来的Artemis,基于Scala号称下一代AMQ的Apollo等。0 码力 | 5 页 | 375.48 KB | 1 年前3
 Apache RocketMQ on Amazon Web Services内实现通信,且仅允许访问必需的协议和端⼝(如 果您选 择的是启动在已有 VPC 中,您需要提前创建此安全组或者使用已有 的安全组)。 • 在私有⼦网中,一个可自定义单独运⾏或者在副本集中运⾏的 Apache RocketMQ 群集,还 可以自定义 Amazon EBS 存储的⼤⼩。快速⼊⻔将把副 本集启动在在不同的可用 区中。如果您选择的 AMAZON WEB SERVICES 区域 Page 全球: AMAZON WEB SERVICES 全球: 若您需要在 AMAZON WEB SERVICES 海外区域部署,请使用这个链接: 配置部署参数 自定义堆栈名称后,配置必填参数选项,并且根据需求调整已有默认值的选项。以下 为详细的参数解释。两个选项除了网络配置不同以外,其他配置都是相同的。 选项 1:⽤于将 Apache RocketMQ 部署到新 项,除⾮您对启动脚 RocketMQ 快速部署脚本做了自 定义化并且 上传到了您自己的 桶中。 25 Quick Start S3 Key Prefix QSS3KeyPrefix quickstart- rocketmq/ S3 前缀。请不要更改此选项, 除⾮您对此启动脚本做了自定义 化并且存放到了不同的前缀目录 下。 选项 2:用于将0 码力 | 18 页 | 1.55 MB | 1 年前3 Apache RocketMQ on Amazon Web Services内实现通信,且仅允许访问必需的协议和端⼝(如 果您选 择的是启动在已有 VPC 中,您需要提前创建此安全组或者使用已有 的安全组)。 • 在私有⼦网中,一个可自定义单独运⾏或者在副本集中运⾏的 Apache RocketMQ 群集,还 可以自定义 Amazon EBS 存储的⼤⼩。快速⼊⻔将把副 本集启动在在不同的可用 区中。如果您选择的 AMAZON WEB SERVICES 区域 Page 全球: AMAZON WEB SERVICES 全球: 若您需要在 AMAZON WEB SERVICES 海外区域部署,请使用这个链接: 配置部署参数 自定义堆栈名称后,配置必填参数选项,并且根据需求调整已有默认值的选项。以下 为详细的参数解释。两个选项除了网络配置不同以外,其他配置都是相同的。 选项 1:⽤于将 Apache RocketMQ 部署到新 项,除⾮您对启动脚 RocketMQ 快速部署脚本做了自 定义化并且 上传到了您自己的 桶中。 25 Quick Start S3 Key Prefix QSS3KeyPrefix quickstart- rocketmq/ S3 前缀。请不要更改此选项, 除⾮您对此启动脚本做了自定义 化并且存放到了不同的前缀目录 下。 选项 2:用于将0 码力 | 18 页 | 1.55 MB | 1 年前3
 快速部署高可用的Apache RocketMQ 集群 - Amazon S3内实现通信,且仅允许访问必需的协议和端⼝ (如果您选 择的是启动在已有 VPC 中,您需要提前创建此安全组或者使 ⽤已有的安全组)。 • 在私有⼦⽹中,⼀个可⾃定义单独运⾏或者在副本集中运⾏的 Apache RocketMQ 群集,还 可以⾃定义 Amazon EBS 存储的⼤⼩。快速⼊⻔将 把副本集启动在在不同的可⽤ 区中。如果您选择的 AMAZON WEB SERVICES 区域为由光环新⽹运营的 亚马逊云科技中国: 亚马逊云科技全球: 亚马逊云科技全球: Page 8 of 21 配置部署参数 ⾃定义堆栈名称后,配置必填参数选项,并且根据需求调整已有默认值的选项。以下 为详细的参数解释。两个选项除了⽹络配置不同以外,其他配置都是相同的。 选项 1:⽤于将 Apache RocketMQ 部署到新 更改此选 项,除⾮您对启动脚 RocketMQ 快速部署脚本做了 ⾃定义化并且 上传到了您⾃⼰ 的桶中。 25 Quick Start S3 Key Prefix QSS3KeyPrefix quickstart- rocketmq/ S3 前缀。请不要更改此选项, 除⾮您对此启动脚本做了⾃定义 Page 12 of 21 化并且存放到了不同的前缀⽬录0 码力 | 21 页 | 2.57 MB | 1 年前3 快速部署高可用的Apache RocketMQ 集群 - Amazon S3内实现通信,且仅允许访问必需的协议和端⼝ (如果您选 择的是启动在已有 VPC 中,您需要提前创建此安全组或者使 ⽤已有的安全组)。 • 在私有⼦⽹中,⼀个可⾃定义单独运⾏或者在副本集中运⾏的 Apache RocketMQ 群集,还 可以⾃定义 Amazon EBS 存储的⼤⼩。快速⼊⻔将 把副本集启动在在不同的可⽤ 区中。如果您选择的 AMAZON WEB SERVICES 区域为由光环新⽹运营的 亚马逊云科技中国: 亚马逊云科技全球: 亚马逊云科技全球: Page 8 of 21 配置部署参数 ⾃定义堆栈名称后,配置必填参数选项,并且根据需求调整已有默认值的选项。以下 为详细的参数解释。两个选项除了⽹络配置不同以外,其他配置都是相同的。 选项 1:⽤于将 Apache RocketMQ 部署到新 更改此选 项,除⾮您对启动脚 RocketMQ 快速部署脚本做了 ⾃定义化并且 上传到了您⾃⼰ 的桶中。 25 Quick Start S3 Key Prefix QSS3KeyPrefix quickstart- rocketmq/ S3 前缀。请不要更改此选项, 除⾮您对此启动脚本做了⾃定义 Page 12 of 21 化并且存放到了不同的前缀⽬录0 码力 | 21 页 | 2.57 MB | 1 年前3
 基于Apache APISIX 与RocketMQ 构建云原生一体化架构可观测性能力云原生化,OpenTelemetry 标准化 • Kubernetes 一键式部署扩容交付 W r i t e h e r e S o m e t h i n g Ab o u t 全新 POP 消费模型 服务端负载均衡  消除 Consumer 与 Queue 的 Binding 关 系,一个 Queue 可以由多个消费者消费  无 rebalance ,降低消费延迟概率  集群中某些消费端假死不影响整体消费进度0 码力 | 22 页 | 2.26 MB | 1 年前3 基于Apache APISIX 与RocketMQ 构建云原生一体化架构可观测性能力云原生化,OpenTelemetry 标准化 • Kubernetes 一键式部署扩容交付 W r i t e h e r e S o m e t h i n g Ab o u t 全新 POP 消费模型 服务端负载均衡  消除 Consumer 与 Queue 的 Binding 关 系,一个 Queue 可以由多个消费者消费  无 rebalance ,降低消费延迟概率  集群中某些消费端假死不影响整体消费进度0 码力 | 22 页 | 2.26 MB | 1 年前3
共 8 条
- 1













