 RocketMQ v3.2.4 开发指南Consumer 消息消费者,负责消费消息,一般是后台系统负责异步消费。  Push Consumer Consumer 的一种,应用通常吐 Consumer 对象注册一个 Listener 接口,一旦收到消息,Consumer 对象立 刻回调 Listener 接口方法。  Pull Consumer Consumer 的一种,应用通常主劢调用 Consumer 的拉消息方法从 磁盘设备损坏。 (1)、(2)、(3)、(4)四种情冴都属亍硬件资源可立即恢复情冴,RocketMQ 在返四种情冴下能保证消息丌丢,戒 者丢失少量数据(依赖刷盘方式是同步迓是异步)。 (5)、(6)属亍单点故障,丏无法恢复,一旦収生,在此单点上的消息全部丢失。RocketMQ 在返两种情冴下,通 过异步复制,可保证 99%的消息丌丢,但是仍然会有极少量的消息可能丢失。通过同步双写技术可以完全避免单点, 版本开始支持同步双写。 4.7 Low Latency Messaging 在消息丌堆积情冴下,消息到达 Broker 后,能立刻到达 Consumer。 RocketMQ 使用长轮询 Pull 方式,可保证消息非常实时,消息实时性丌低亍 Push。 项目开源主页:https://github.com/alibaba/RocketMQ 7 4.8 At least Once 是挃每个消息必须投递一次0 码力 | 52 页 | 1.61 MB | 1 年前3 RocketMQ v3.2.4 开发指南Consumer 消息消费者,负责消费消息,一般是后台系统负责异步消费。  Push Consumer Consumer 的一种,应用通常吐 Consumer 对象注册一个 Listener 接口,一旦收到消息,Consumer 对象立 刻回调 Listener 接口方法。  Pull Consumer Consumer 的一种,应用通常主劢调用 Consumer 的拉消息方法从 磁盘设备损坏。 (1)、(2)、(3)、(4)四种情冴都属亍硬件资源可立即恢复情冴,RocketMQ 在返四种情冴下能保证消息丌丢,戒 者丢失少量数据(依赖刷盘方式是同步迓是异步)。 (5)、(6)属亍单点故障,丏无法恢复,一旦収生,在此单点上的消息全部丢失。RocketMQ 在返两种情冴下,通 过异步复制,可保证 99%的消息丌丢,但是仍然会有极少量的消息可能丢失。通过同步双写技术可以完全避免单点, 版本开始支持同步双写。 4.7 Low Latency Messaging 在消息丌堆积情冴下,消息到达 Broker 后,能立刻到达 Consumer。 RocketMQ 使用长轮询 Pull 方式,可保证消息非常实时,消息实时性丌低亍 Push。 项目开源主页:https://github.com/alibaba/RocketMQ 7 4.8 At least Once 是挃每个消息必须投递一次0 码力 | 52 页 | 1.61 MB | 1 年前3
 Apache RocketMQ 从入门到实战NameServer 路由消息、消息发送高可用的实现原理,建议查阅笔者的书籍《 RocketMQ 技术内幕》第二、三章。 Step1:在 Broker 启动流程中,会构建 TopicConfigManager 对象,其构造方法中 首先会判断是否开启了允许自动创建主题,如果启用了自动创建主题,则向 topicConfigT able 中添加默认主题的路由信息。 TopicConfigManager 构造方法: Broker 服务器。 温馨提示:如果上面在安装过程中发生了错误,大家可以查看{user_home}为用户主 目录。 该目录下会有众多的日志文件,如果一开始对这些文件的含义不了解也没关系,大家可 以通过 ls -l 命令,逐一查看文件大小不为0的文件,从而寻找错误日志,便于快速解决 问题。 RocketMQ 提供了众多的运维命令来查看 RocketMQ 集群的运行状态,在这里我先 简单使用 大小、消费组获取消息个数等信息,每一项使用 StatsItemSet 存储,该存储结构内部又 维护一个 HashMap:ConcurrentMap,key 代表某一个具体的统计目标,例如记录消 费组拉取消息的数量监控指标,那其统计的对象即 topic@consumer_group,最终数据 的载体是 StatsItem,使用如下几个关键字段来记录统计信息:  AtomicLong value = new AtomicLong(0)0 码力 | 165 页 | 12.53 MB | 1 年前3 Apache RocketMQ 从入门到实战NameServer 路由消息、消息发送高可用的实现原理,建议查阅笔者的书籍《 RocketMQ 技术内幕》第二、三章。 Step1:在 Broker 启动流程中,会构建 TopicConfigManager 对象,其构造方法中 首先会判断是否开启了允许自动创建主题,如果启用了自动创建主题,则向 topicConfigT able 中添加默认主题的路由信息。 TopicConfigManager 构造方法: Broker 服务器。 温馨提示:如果上面在安装过程中发生了错误,大家可以查看{user_home}为用户主 目录。 该目录下会有众多的日志文件,如果一开始对这些文件的含义不了解也没关系,大家可 以通过 ls -l 命令,逐一查看文件大小不为0的文件,从而寻找错误日志,便于快速解决 问题。 RocketMQ 提供了众多的运维命令来查看 RocketMQ 集群的运行状态,在这里我先 简单使用 大小、消费组获取消息个数等信息,每一项使用 StatsItemSet 存储,该存储结构内部又 维护一个 HashMap:ConcurrentMap,key 代表某一个具体的统计目标,例如记录消 费组拉取消息的数量监控指标,那其统计的对象即 topic@consumer_group,最终数据 的载体是 StatsItem,使用如下几个关键字段来记录统计信息:  AtomicLong value = new AtomicLong(0)0 码力 | 165 页 | 12.53 MB | 1 年前3
 消息中间件RocketMQ原理解析 - 斩秋retryTimesWhenSendFailed = 2 发送消息超时 sendMsgTimeout = 3000 Producer 通过 selectOneMessageQueue 方法获取一个 MessagQueue 对象 --topic //Topic_A --brokerName //代表发送消息到达的 broker --queueId //代表发送消息的在指定 订阅 topic 注册消息监听处理器,当消息到来时消费消息 消费端 Start 复制订阅关系 初始化 rebalance 变量 构建 offsetStore 消费进度存储对象 启动消费消息服务 向 mqClientFactory 注册本消费者 启动 client 端远程通信 启动定时任务 定时获取 nameserver 地址 为什么要删除掉,两分钟后来了消息怎么办? // 2) 添加新增队列, 比对 mqSet,给新增的 messagequeue 构建长轮询对象 PullRequest 对象,会从 broker 获取消费的进度 构建这个队列的 ProcessQueue 将 PullRequest 对象派发到长轮询拉消息服务(单线程异步拉取) 注:ProcessQueue 正在被消费的队列, (1) 长轮询拉取到消息都会先存储到0 码力 | 57 页 | 2.39 MB | 1 年前3 消息中间件RocketMQ原理解析 - 斩秋retryTimesWhenSendFailed = 2 发送消息超时 sendMsgTimeout = 3000 Producer 通过 selectOneMessageQueue 方法获取一个 MessagQueue 对象 --topic //Topic_A --brokerName //代表发送消息到达的 broker --queueId //代表发送消息的在指定 订阅 topic 注册消息监听处理器,当消息到来时消费消息 消费端 Start 复制订阅关系 初始化 rebalance 变量 构建 offsetStore 消费进度存储对象 启动消费消息服务 向 mqClientFactory 注册本消费者 启动 client 端远程通信 启动定时任务 定时获取 nameserver 地址 为什么要删除掉,两分钟后来了消息怎么办? // 2) 添加新增队列, 比对 mqSet,给新增的 messagequeue 构建长轮询对象 PullRequest 对象,会从 broker 获取消费的进度 构建这个队列的 ProcessQueue 将 PullRequest 对象派发到长轮询拉消息服务(单线程异步拉取) 注:ProcessQueue 正在被消费的队列, (1) 长轮询拉取到消息都会先存储到0 码力 | 57 页 | 2.39 MB | 1 年前3
 快速部署高可用的Apache RocketMQ 集群 - Amazon S3EC2 的高可用的 RocketMQ 集群。 架构 Amazon CloudFormation 提供了⼀种创建和管理相关 AMAZON WEB SERVICES 资源的简便⽅法,并通过有序 且可预测的⽅式进⾏资源配置和更新。本快速⼊⻔提供 两种部署选项,⼀种是将 Apache RocketMQ 部署到新 VPC 环境中,另⼀种是 部署 到已有 VPC 环境中。使⽤默认参数为在新 VPC 环境中 Instance 中选择一个作为 Master 继续提供服务从而达到高可用的效果,下图是部署完的一个架构实例图 Page 4 of 21 • (*) 跨越多个可⽤区的公有⼦⽹和私有⼦⽹的 VPC(由西云数据运营的 亚 马逊云科技(宁 夏)区域为 3 个,由光环新⽹运营的 亚马逊云科技(北 京)区域为 2 个)。 • (*) 在公有⼦⽹中,允许私有⼦⽹中的资源(RocketMQ • 在私有⼦⽹中,⼀个可⾃定义单独运⾏或者在副本集中运⾏的 Apache RocketMQ 群集,还 可以⾃定义 Amazon EBS 存储的⼤⼩。快速⼊⻔将 把副本集启动在在不同的可⽤ 区中。如果您选择的 AMAZON WEB SERVICES 区域为由光环新⽹运营的 亚马逊云科技(北京)区域,因其对 外 提供 2 个可⽤区,本解决方案将重复使⽤其中⼀个可⽤区来创建第三个 ⼦⽹。0 码力 | 21 页 | 2.57 MB | 1 年前3 快速部署高可用的Apache RocketMQ 集群 - Amazon S3EC2 的高可用的 RocketMQ 集群。 架构 Amazon CloudFormation 提供了⼀种创建和管理相关 AMAZON WEB SERVICES 资源的简便⽅法,并通过有序 且可预测的⽅式进⾏资源配置和更新。本快速⼊⻔提供 两种部署选项,⼀种是将 Apache RocketMQ 部署到新 VPC 环境中,另⼀种是 部署 到已有 VPC 环境中。使⽤默认参数为在新 VPC 环境中 Instance 中选择一个作为 Master 继续提供服务从而达到高可用的效果,下图是部署完的一个架构实例图 Page 4 of 21 • (*) 跨越多个可⽤区的公有⼦⽹和私有⼦⽹的 VPC(由西云数据运营的 亚 马逊云科技(宁 夏)区域为 3 个,由光环新⽹运营的 亚马逊云科技(北 京)区域为 2 个)。 • (*) 在公有⼦⽹中,允许私有⼦⽹中的资源(RocketMQ • 在私有⼦⽹中,⼀个可⾃定义单独运⾏或者在副本集中运⾏的 Apache RocketMQ 群集,还 可以⾃定义 Amazon EBS 存储的⼤⼩。快速⼊⻔将 把副本集启动在在不同的可⽤ 区中。如果您选择的 AMAZON WEB SERVICES 区域为由光环新⽹运营的 亚马逊云科技(北京)区域,因其对 外 提供 2 个可⽤区,本解决方案将重复使⽤其中⼀个可⽤区来创建第三个 ⼦⽹。0 码力 | 21 页 | 2.57 MB | 1 年前3
 Apache RocketMQ 介绍0 国际 (CC BY-SA 4.0) Apache RocketMQ 介绍 概要 Apache RocketMQ是一个分布式消息传递和流媒体平台,具有低延迟,高性能和可靠性,万亿级容 和灵活的可伸缩性。它的一个重要特性是支持非日志类型的可靠消息传送,非常适合运用在金融和电 商务领域。目前他是Apache社区的顶级项目,在全球有超过100家公司在其业务中使用RocketMQ 开源版本。 诞生 对等的读写服务,支持快速扩缩容。 Broker负责消息存储,以Topic为纬度支持轻量级的队列,单机可以支撑上万队列规模,支持消息推 模型,具备多副本容错机制(2副本或3副本)、强大的削峰填谷以及上亿级消息堆积能力,同时可严 保证消息的有序性。除此之外,Broker还提供了同城异地容灾能力,丰富的Metrics统计以及告警机 。这些都是传统消息系统无法比拟的。 Producer由用户进行分布式部署,消息由Produc 于Scala号称下一代AMQ的Apollo等。 而Kafka最初被设计用来做日志处理,是一个不折不扣的大数据通道,追求高吞吐,存在丢消息的可 。其背后的研发团队也围绕着Kafka进行了商业包装,目前在一些中小型公司被广泛使用。 下表是一目了然的快速参考,可快速发现RocketMQ及其最受欢迎的替代产品之间的差异。 Messaging Product Client SDK Protocol and0 码力 | 5 页 | 375.48 KB | 1 年前3 Apache RocketMQ 介绍0 国际 (CC BY-SA 4.0) Apache RocketMQ 介绍 概要 Apache RocketMQ是一个分布式消息传递和流媒体平台,具有低延迟,高性能和可靠性,万亿级容 和灵活的可伸缩性。它的一个重要特性是支持非日志类型的可靠消息传送,非常适合运用在金融和电 商务领域。目前他是Apache社区的顶级项目,在全球有超过100家公司在其业务中使用RocketMQ 开源版本。 诞生 对等的读写服务,支持快速扩缩容。 Broker负责消息存储,以Topic为纬度支持轻量级的队列,单机可以支撑上万队列规模,支持消息推 模型,具备多副本容错机制(2副本或3副本)、强大的削峰填谷以及上亿级消息堆积能力,同时可严 保证消息的有序性。除此之外,Broker还提供了同城异地容灾能力,丰富的Metrics统计以及告警机 。这些都是传统消息系统无法比拟的。 Producer由用户进行分布式部署,消息由Produc 于Scala号称下一代AMQ的Apollo等。 而Kafka最初被设计用来做日志处理,是一个不折不扣的大数据通道,追求高吞吐,存在丢消息的可 。其背后的研发团队也围绕着Kafka进行了商业包装,目前在一些中小型公司被广泛使用。 下表是一目了然的快速参考,可快速发现RocketMQ及其最受欢迎的替代产品之间的差异。 Messaging Product Client SDK Protocol and0 码力 | 5 页 | 375.48 KB | 1 年前3
 基于Apache APISIX 与RocketMQ 构建云原生一体化架构核心链路,稳定性要求高、时延敏感 • 容量峰值具有随机性,弹性要求高 • 业务场景复杂、集成要求尽可能简单 • 运维及流量调拨要求高 极简架构 高性能 金融级高可靠 打造业务消息领域首选 零依赖 可扩展 低延迟 高吞吐 强同步刷盘 ACK 机制 普通消息 顺序消息 延迟消息 事务消息 重试消息 死信消息 设计思想: 1.消息不丢、高可靠是架构的基础 2.时延优先,兼顾吞吐 3 Pop 消费模式,多语言友好,易集成 从业务走向数据: • 事件流场景支撑 • 面向 SQL 的轻量级实时计算引擎 可分可合的存储计算分离: • Broker 升级为真正的无状态服务节点,无 binding • Broker和Store节点分离部署、独立扩缩 • 可分可合,适应多种业务场景,降低运维负担 云原生基础设施: • 可观测性能力云原生化,OpenTelemetry 标准化 •0 码力 | 22 页 | 2.26 MB | 1 年前3 基于Apache APISIX 与RocketMQ 构建云原生一体化架构核心链路,稳定性要求高、时延敏感 • 容量峰值具有随机性,弹性要求高 • 业务场景复杂、集成要求尽可能简单 • 运维及流量调拨要求高 极简架构 高性能 金融级高可靠 打造业务消息领域首选 零依赖 可扩展 低延迟 高吞吐 强同步刷盘 ACK 机制 普通消息 顺序消息 延迟消息 事务消息 重试消息 死信消息 设计思想: 1.消息不丢、高可靠是架构的基础 2.时延优先,兼顾吞吐 3 Pop 消费模式,多语言友好,易集成 从业务走向数据: • 事件流场景支撑 • 面向 SQL 的轻量级实时计算引擎 可分可合的存储计算分离: • Broker 升级为真正的无状态服务节点,无 binding • Broker和Store节点分离部署、独立扩缩 • 可分可合,适应多种业务场景,降低运维负担 云原生基础设施: • 可观测性能力云原生化,OpenTelemetry 标准化 •0 码力 | 22 页 | 2.26 MB | 1 年前3
 Apache RocketMQ on Amazon Web ServicesEC2 的高可用的 RocketMQ 集群。 架构 AMAZON CloudFormation 提供了一种创建和管理相关 AMAZON WEB SERVICES 资源的简 便方法,并通过有序 且可预测的方式进⾏资源配置和更新。本快速⼊⻔提供两种部署 选项,一种是将 Apache RocketMQ 部署到新 VPC 环境中,另一种是 部署到已有 VPC 环 境中。使用默认参数为在新 VPC 环境中 (*) 安全组,用于在 VPC 内实现通信,且仅允许访问必需的协议和端⼝(如 果您选 择的是启动在已有 VPC 中,您需要提前创建此安全组或者使用已有 的安全组)。 • 在私有⼦网中,一个可自定义单独运⾏或者在副本集中运⾏的 Apache RocketMQ 群集,还 可以自定义 Amazon EBS 存储的⼤⼩。快速⼊⻔将把副 本集启动在在不同的可用 区中。如果您选择的 AMAZON0 码力 | 18 页 | 1.55 MB | 1 年前3 Apache RocketMQ on Amazon Web ServicesEC2 的高可用的 RocketMQ 集群。 架构 AMAZON CloudFormation 提供了一种创建和管理相关 AMAZON WEB SERVICES 资源的简 便方法,并通过有序 且可预测的方式进⾏资源配置和更新。本快速⼊⻔提供两种部署 选项,一种是将 Apache RocketMQ 部署到新 VPC 环境中,另一种是 部署到已有 VPC 环 境中。使用默认参数为在新 VPC 环境中 (*) 安全组,用于在 VPC 内实现通信,且仅允许访问必需的协议和端⼝(如 果您选 择的是启动在已有 VPC 中,您需要提前创建此安全组或者使用已有 的安全组)。 • 在私有⼦网中,一个可自定义单独运⾏或者在副本集中运⾏的 Apache RocketMQ 群集,还 可以自定义 Amazon EBS 存储的⼤⼩。快速⼊⻔将把副 本集启动在在不同的可用 区中。如果您选择的 AMAZON0 码力 | 18 页 | 1.55 MB | 1 年前3
 王强-Apache RocketMQ事务消息RocketMQ 存储设计 Cloud Native 的定义 • 设计,搭建和部署应⽤用的⽅方式 • 运⾏行行在云计算环境 IaaS • 快速,弹性 • 降低技术⻛风险 • 互操作性,易易部署,可监控管理理 消息系统挑战 • 传统设计和实现⽅方⾯面 • 组件的微服务化,例例如存储和计算分离 • 开源软件的冲击,云服务选型⾯面临挑战 • 缺少稳定的多语⾔言类库 • Cloud AI Ops⽅方⾯面0 码力 | 34 页 | 6.17 MB | 1 年前3 王强-Apache RocketMQ事务消息RocketMQ 存储设计 Cloud Native 的定义 • 设计,搭建和部署应⽤用的⽅方式 • 运⾏行行在云计算环境 IaaS • 快速,弹性 • 降低技术⻛风险 • 互操作性,易易部署,可监控管理理 消息系统挑战 • 传统设计和实现⽅方⾯面 • 组件的微服务化,例例如存储和计算分离 • 开源软件的冲击,云服务选型⾯面临挑战 • 缺少稳定的多语⾔言类库 • Cloud AI Ops⽅方⾯面0 码力 | 34 页 | 6.17 MB | 1 年前3
共 8 条
- 1













