Apache RocketMQ 从入门到实战RocketMQ PMC Member/ committer,Linux OpenMessaging TSC Member,目前负责 RocketMQ 专有云商业化以 及开源技术生态构建。具有多年分布式系统、中间件 研究及工程经验。目前对分布式中间件、K8s、微服 务、物联网、Serverless 感兴趣。 推荐序 Apache RocketMQ 作为一款高吞吐,抗万亿消息堆积的云原生消息平台,目前已 1. Nameserver Nameserver 集群,topic 的路由注册中心,为客户端根据 Topic 提供路由服务,从 而引导客户端向 Broker 发送消息。Nameserver 之间的节点不通信。路由信息在 Nameserver 集群中数据一致性采取的最终一致性。 2. Broker 消息存储服务器,分为两种角色:Master 与 Slave,上图中呈现的就是 2 主 2 从的部 opics.json。 在 RocketMQ4.5.0 版本后引入了多副本机制,即一个复制组(m-s)可以演变为基 于 raft 协议的复制组,复制组内部使用 raft 协议保证 broker 节点数据的强一致性,该部署 架构在金融行业用的比较多。 二、消息订阅模型 在 RocketMQ 的消息消费模式采用的是发布与订阅模式。 topic:一类消息的集合,消息发送者将一类消息发送到一个主题中,例如订单模块将0 码力 | 165 页 | 12.53 MB | 1 年前3
RocketMQ v3.2.4 开发指南...................................................................................... 13 6.2 文件系统 .................................................................................................. 的多个关键特性的实现原理,幵对消息中间件遇到的各种问题迕行总结,阐述 RocketMQ 如何解决返些问题。文中主要引用了 JMS 规范不 CORBA Notification 规范,规范为我们设计系统挃明了 方吐,但是仍有丌少问题规范没有提及,对亍消息中间件又至关重要。RocketMQ 幵丌遵循任何规范,但是参考了 各种规范不同类产品的设计思想。 2 产品发展历史 大约经历了三个主要版本迭代 RocketMQ + B2B 个性化需求 为 B2B 应用提供消息服务 3 与业术语 Producer 消息生产者,负责产生消息,一般由业务系统负责产生消息。 Consumer 消息消费者,负责消费消息,一般是后台系统负责异步消费。 Push Consumer Consumer 的一种,应用通常吐 Consumer 对象注册一个 Listener 接口,一旦收到消息,Consumer0 码力 | 52 页 | 1.61 MB | 1 年前3
rocketmq 服务部署来源网站:链滴 许可协议:署名-相同方式共享 4.0 国际 (CC BY-SA 4.0) 摘自:https://zhuanlan.zhihu.com/p/226173170 rocketmq源码构建 系统:Mac OS 12.0 --- arm64 jdk版本:1.8 maven版本:3.6.3 git clone https://github.com/apache/rocketmq.git 文件保留时间,默认48小时 fileReservedTime=48 # Broker的角色,AYNSC_MASTER=异步复制master,SYNC_MASTER=同步双写master,SLAVE= lave节点 brokerRole=ASYNC_MASTER # 刷盘方式,ASYNC_FLUSH=异步刷盘,SYNC_FLUSH=同步刷盘 flushDiskType=ASYNC_FLUSH # broker对外服务的监听端口 mapedFileSizeCommitLog=1073741824 # ConsumeQueue每个文件默认存30w条,根据业务情况调整 mapedFileSizeConsumeQueue=300000 2、配置slave节点 conf/2m-2s-async/broker-b-s.properties # 集群名称 brokerClusterName=mq-broker-cluster # broker名字,不同的配置文件填写的不一样0 码力 | 11 页 | 284.35 KB | 1 年前3
快速部署高可用的Apache RocketMQ 集群 - Amazon S3在公有⼦⽹中,Auto Scaling 组中的允许 SSH 访问的堡垒主机。默认 情况下将 部署⼀台堡垒主机,此数⽬可配置,最多启动 4 台。通过堡垒主 机访问私有⼦⽹ 中的 RocketMQ 相关节点。 • AMAZON Identity and Access Management (IAM) 实例⻆⾊,具有细 化控制的权限, ⽤于访问部署过程所需的 AMAZON WEB SERVICES 2 选择部署 Apache RocketMQ Nameserver 节点的数量。 16 Number of Apache RocketMQ Broker Cluster Node BrokerClusterCount 3 选择部署 Apache RocketMQ Broker 节点的数量。 Page 11 of 21 17 IOPS NameServerInstanceTy pe m5.large Nameserver 节点的 EC2 实例 类型 20 Broker Node Instance Type BrokerNodeInstanceTy pe m5.xlarge Broker 节点 EC2 实例类型 21 Apache RocketMQ flush Disk Type0 码力 | 21 页 | 2.57 MB | 1 年前3
Apache RocketMQ on Amazon Web Services在公有⼦网中,Auto Scaling 组中的允许 SSH 访问的堡垒主机。默认情况 下将 部署一台堡垒主机,此数目可配置,最多启动 4 台。通过堡垒主机访 问私有⼦网 中的 RocketMQ 相关节点。 • AMAZON Identity and Access Management (IAM) 实例⻆⾊,具有细化控制的 权限, 用于访问部署过程所需的 AMAZON WEB SERVICES 2 选择部署 Apache RocketMQ Nameserver 节点的数量。 16 Number of Apache RocketMQ Broker Cluster Node BrokerClusterCount 3 选择部署 Apache RocketMQ Broker 节点的数量。 17 IOPS Iops 100 如果您选择的是 type NameServerInstanceType m5.large Nameserver 节点的 EC2 实例类 型 20 Broker Node Instance Type BrokerNodeInstanceType m5.xlarge Broker 节点 EC2 实例类型 21 Apache RocketMQ flush Disk Type0 码力 | 18 页 | 1.55 MB | 1 年前3
基于Apache APISIX 与RocketMQ 构建云原生一体化架构专有云 混合云 EC S 容器 K8S 物理机 经典网络/VPC 网络 Overlay/Underlay NVMe 普通云盘 ESSD 云盘 SA TA 独占/混部/独立交付…… • 集群节点异常成为常态 • 依赖服务随时可能在进行迁移或重启 • 对弹性的要求开始从物理资源变为逻辑资源 • IaaS 的多样性对应用交付部署提出了更高要求 • 可运维性、可观测性带来了更大挑战 • 秒级故障转移,多场景容灾支持 • 无外部依赖,节点间松散耦合 • 自建及云上异构 IaaS 基础设施支持,降低成本 轻量级SDK: • 全面支持云原生通信标准 gRPC 协议 • 无状态 Pop 消费模式,多语言友好,易集成 从业务走向数据: • 事件流场景支撑 • 面向 SQL 的轻量级实时计算引擎 可分可合的存储计算分离: • Broker 升级为真正的无状态服务节点,无 binding • Broker和Store节点分离部署、独立扩缩 • 可分可合,适应多种业务场景,降低运维负担 云原生基础设施: • 可观测性能力云原生化,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 与0 码力 | 22 页 | 2.26 MB | 1 年前3
万亿级数据洪峰下的消息引擎Apache RocketMQ万亿洪峰下有哪些问题 机器假死 IO Util,Load飙高 磁盘响应慢 消息大量堆积 网卡故障,甚至流量跑满 磁盘损坏 零点之战:发布消息SLA要求100% 慢请求开始大量增加 分布式系统雪崩 容量不足,单机热点 问题的本质: 可用性无限接近100% 可靠性无限接近100% 可用性 > 可靠性 1.4万亿 双十一当天高可用要求 ~~ 100% ???????????? = 02 低延迟分布式存储系统 在线熔断机制,秒级隔离 03 容量保障,限流 1.4万亿 低延迟分布式存储系统 – RocketMQ存储 Java Heap Lock Page Cache Disk Request Request Request Request Request Request 万级请求/秒/单机 1.4万亿 低延迟分布式存储系统 – 并发锁的开销 lR nized ØFair ØUnfair lLockSupport.unpark/park 1.4万亿 低延迟分布式存储系统 – PageCache真的那么快吗? 1.4万亿 低延迟分布式存储系统 – PageCache的毛刺现象分析 1.4万亿 低延迟分布式存储系统 – PageCache的毛刺现象分析 lMemory access latency issues: ØDirect reclaim0 码力 | 35 页 | 993.29 KB | 1 年前3
万亿级数据洪峰下的消息引擎 Apache RocketMQ万亿洪峰下有哪些问题 机器假死 IO Util,Load飙高 磁盘响应慢 消息大量堆积 网卡故障,甚至流量跑满 磁盘损坏 零点之战:发布消息SLA要求100% 慢请求开始大量增加 分布式系统雪崩 容量不足,单机热点 问题的本质: 可用性无限接近100% 可靠性无限接近100% 可用性 > 可靠性 1.4万亿 双十一当天高可用要求 ~~ 100% ???????????? = 02 低延迟分布式存储系统 在线熔断机制,秒级隔离 03 容量保障,限流 1.4万亿 低延迟分布式存储系统 – RocketMQ存储 Java Heap Lock Page Cache Disk Request Request Request Request Request Request 万级请求/秒/单机 1.4万亿 低延迟分布式存储系统 – 并发锁的开销 lR nized ØFair ØUnfair lLockSupport.unpark/park 1.4万亿 低延迟分布式存储系统 – PageCache真的那么快吗? 1.4万亿 低延迟分布式存储系统 – PageCache的毛刺现象分析 1.4万亿 低延迟分布式存储系统 – PageCache的毛刺现象分析 lMemory access latency issues: ØDirect reclaim0 码力 | 35 页 | 5.82 MB | 1 年前3
消息中间件RocketMQ原理解析 - 斩秋加一来实现对所有 queue 的轮询 如果入参 lastBrokerName 不为空,代表上次选择的 queue 发送失败,这次选 择应该避开同一个 queue 3) Producer 发消息系统重试: 发送失败后,重试几次 retryTimesWhenSendFailed = 2 发送消息超时 sendMsgTimeout = 3000 Producer 通过 selectOneMessageQueue 已经提供了很全面的实现, consumer 通过长轮询拉取消息后回调 MessageListener 接口实现完成消费, 应用系统只要 MessageListener 完成业务逻辑即可 2. Pull 方式:完全由业务系统去控制,定时拉取消息,指定队列消费等等, 当然这里需要 业务系统去根据自己的业务需求去实现 下面介绍默认以 push 方式为主, 因为绝大多数是由 push 消费方式来使用 propertiesLength 大小的属性数据 3) MapedFile 是 PageCache 文件封装,操作物理文件在内存中的映射以及将内存数据持久 化到物理文件中, 代码中写死了要求 os 系统的页大小为 4k, 消息刷盘根据参数 (commitLog 默认至少刷 4 页, consumeQueue 默认至少刷 2 页)才刷 以下 io 对象构建了物理文件映射内存的对象 FileChannel0 码力 | 57 页 | 2.39 MB | 1 年前3
王强-Apache RocketMQ事务消息Apache RocketMQ 事务消息 王强 (辽天) 阿⾥里里巴巴 中间件技术专家 • 事务消息的演进与Apache RocketMQ的实现 • Cloud Native时代下消息系统的挑战 • Apache RocketMQ 简介 • Apache RocketMQ 存储设计 Apache RocketMQ http://rocketmq.apache.org • ⾼高性能,分布式 DefaultRequestProcessor Store Service RemotingCommand • 事务消息的演进与Apache RocketMQ的实现 • Cloud Native时代下消息系统的挑战 • Apache RocketMQ 简介 • Apache RocketMQ 存储设计 存储⽂文件 - - - - - 1G - - - - - 6M - - - - - 400M FileChannel.map() flush() selectMappedBuffer() • 事务消息的演进与Apache RocketMQ的实现 • Cloud Native时代下消息系统的挑战 • Apache RocketMQ 简介 • Apache RocketMQ 存储设计 分布式事务⾯面临的挑战 分布式事务理理论 ACID 刚性事务(强⼀一致) BASE0 码力 | 34 页 | 6.17 MB | 1 年前3
共 11 条
- 1
- 2













