RocketMQ v3.2.4 开发指南项目只维护核心功能,丏去除了所有其他运行时依赖,核心功能最 简化。每个 BU 的个性化需求都在 RocketMQ 项目乀上迕行深度定制。RocketMQ 吐其他 BU 提供的仁仁是 Jar 包,例如要定制一个 Broker,那举只需要依赖 rocketmq-broker 返个 jar 包即可,可通过 API 迕行交互, 如果定制 client,则依赖 rocketmq-client 返个 jar 要有一台机器丌可用,则整个集群都丌可用,服务可用性大大降低。 如果服务器部署为同步双写模式,此缺陷可通过备机自劢切换为主避免,丌过仍然会存在几分钟的服务丌 可用。(依赖同步双写,主备自劢切换,自劢切换功能目前迓未实现) 目前已知的应用只有数据库 binlog 同步强依赖严格顺序消息,其他应用绝大部分都可以容忍短暂乱序,推 荐使用普通的顺序消息。 Message Queue 项目开源主页:https://github RocketMQ 中,所有消息队列都是持丽化,长度无限的数据结构,所谓长度无限是挃队列中的每个存储 单元都是定长,访问其中的存储单元使用 Offset 来访问,offset 为 java long 类型,64 位,理论上在 100 年内丌会溢出,所以讣为是长度无限,另外队列中只保存最近几天的数据,乀前的数据会挄照过期时间来 删除。 也可以讣为 Message Queue 是一个长度无限的数组,offset0 码力 | 52 页 | 1.61 MB | 1 年前3
消息中间件RocketMQ原理解析 - 斩秋随机选择一台 producer 查询消息,根据 commitLogOffset 和 msgSize 到 commitlog 查找消息 向 Producder 发起请求,请求 code 类型为 CHECK_TRANSACTION_STATE,producer 的 DefaultMQProducerImpl. checkTransactionState()方法来处理 broker 定时回调的请求, broker 有任务定时推送 1. 接收数据向 RouteInfoManager 注册。 Broker 初始化加载本地配置,配置信息是以 json 格式存储在本地, rocketmq 强依赖 fastjson 作转换, RocketMq 通过 ConfigMananger 来管理配置加载以及持久化 1. 加载 topic 配置${user.home}/store/config/topics 30W 条 = 300000 * CQStoreUnitSize(每条大小) filename: filename 文件名称但不仅仅是名称还表示文件记录的初始偏移量, 文件名其 实是个 long 类型的值 4) MapedFileQueue 存储队列,数据定时删除,无限增长。 队列有多个文件(MapedFile)组成,由集合对象 List 表示升序排列,前面讲到文件名即 是消息在此文0 码力 | 57 页 | 2.39 MB | 1 年前3
基于Apache APISIX 与RocketMQ 构建云原生一体化架构运维及流量调拨要求高 极简架构 高性能 金融级高可靠 打造业务消息领域首选 零依赖 可扩展 低延迟 高吞吐 强同步刷盘 ACK 机制 普通消息 顺序消息 延迟消息 事务消息 重试消息 死信消息 设计思想: 1.消息不丢、高可靠是架构的基础 2.时延优先,兼顾吞吐 3.收敛业务共性问题,提供丰富的业务消息类型 4.注重可运维性、弹性扩缩、流量调拨能力建设 RocketMQ 简介 容器 K8S 物理机 经典网络/VPC 网络 Overlay/Underlay NVMe 普通云盘 ESSD 云盘 SA TA 独占/混部/独立交付…… • 集群节点异常成为常态 • 依赖服务随时可能在进行迁移或重启 • 对弹性的要求开始从物理资源变为逻辑资源 • IaaS 的多样性对应用交付部署提出了更高要求 • 可运维性、可观测性带来了更大挑战 • 多租环境带来了更高的网络及安全隔离要求 事件 Subscription 多租户 Store Store Store Store Store Store 存储集群 高可用架构升级: • 秒级故障转移,多场景容灾支持 • 无外部依赖,节点间松散耦合 • 自建及云上异构 IaaS 基础设施支持,降低成本 轻量级SDK: • 全面支持云原生通信标准 gRPC 协议 • 无状态 Pop 消费模式,多语言友好,易集成 从业务走向数据:0 码力 | 22 页 | 2.26 MB | 1 年前3
Apache RocketMQ 从入门到实战rocketmq 监控指标的存储数据结构,如下图 所示: 正如上图所示:RocketMQ 使用 HashMap来存储监 控收集的数据,其中 Key 为监控指标的类型,例如 topic 发送消息数量、topic 发送消息 大小、消费组获取消息个数等信息,每一项使用 StatsItemSet 存储,该存储结构内部又 维护一个 HashMap:ConcurrentMap,key 服务器中的最小偏移量(@4)。如果小于等于 0(返回 0 则表示 该队列的文件还未曾删除过)并且其最小偏移量对应的消息存储在内存中而不是存在磁盘 中,则返回偏移量 0,这就意味着 ConsumeFromWhere 中定义的三种枚举类型都不会 生效,直接从 0 开始消费,到这里就能解开其谜团了(@5)。 代码@6:如果偏移量小于等于 0,但其消息已经存储在磁盘中,此时返回未找到,最 终 RebalancePushImpl#computePullFromWhere CODE,服务端会将客户端请求进行分类,每个命令或每类请求命令定义 一个处理器(NettyRequestProcessor),然后每一个 NettyRequestProcessor 绑定到 一个单独的线程池,进行命令处理,不同类型的请求将使用不同的线程池进行处理,实现线 程隔离。 为了方便下文的描述,我们先简单的认识一下 NettyRequestProcessor、Pair、 RequestCode。其核心关键点如下: 0 码力 | 165 页 | 12.53 MB | 1 年前3
快速部署高可用的Apache RocketMQ 集群 - Amazon S3CentOS AMI。 13 Bastion Instance Type BastionInstanceType t2.micro 堡垒机实例的 EC2 实 例类型。 14 Number of Bastion Hosts NumBastionHosts 1 堡垒机数量。Auto Scaling 确 保您始终保持此数量的运⾏堡垒 机数量。 Apache RocketMQ Broker 节点的数量。 Page 11 of 21 17 IOPS Iops 100 如果您选择的是 io1 卷类型,此 设置为 EBS 卷的 IOPS,否则此 选项将被忽略。 18 RocketMQ Version RocketMQVersion 4.7.1 选择部署的 Apache NameServerInstanceTy pe m5.large Nameserver 节点的 EC2 实例 类型 20 Broker Node Instance Type BrokerNodeInstanceTy pe m5.xlarge Broker 节点 EC2 实例类型 21 Apache RocketMQ flush Disk Type FlushDiskType0 码力 | 21 页 | 2.57 MB | 1 年前3
Apache RocketMQ on Amazon Web Services中的 CentOS AMI。 13 Bastion Instance Type BastionInstanceType t2.micro 堡垒机实例的 EC2 实 例类型。 14 Number of Bastion Hosts NumBastionHosts 1 堡垒机数量。Auto Scaling 确保 您始终保持此数量的运⾏堡垒机 数量。 BrokerClusterCount 3 选择部署 Apache RocketMQ Broker 节点的数量。 17 IOPS Iops 100 如果您选择的是 io1 卷类型,此 设置为 EBS 卷的 IOPS,否则此选 项将被忽略。 18 RocketMQ Version RocketMQVersion 4.7.1 选择部署的 Apache 节点的 EC2 实例类 型 20 Broker Node Instance Type BrokerNodeInstanceType m5.xlarge Broker 节点 EC2 实例类型 21 Apache RocketMQ flush Disk Type FlushDiskType ASYNC_FLUSH Apache RocketMQ Flush Disk0 码力 | 18 页 | 1.55 MB | 1 年前3
王强-Apache RocketMQ事务消息先执⾏行行本地事务还是先发送消息? 交易易型分布式事务的 RocketMQ使⽤用场景 分布式事务解决⽅方案 半消息 远程事务 特点: 1. 稳定,⽀支持⾼高并发 2. 回查机制可靠易易⽤用 3. 不不引⼊入额外的依赖 注意:回查⽅方法需要幂等 Broker 实现细节 Producer with PID TransactionListener executeLocalTransaction() c0 码力 | 34 页 | 6.17 MB | 1 年前3
rocketmq 服务部署bin目录下放的是脚本文件 ● conf目录,配置文件 2m-2s-async 双主双从异步复制模式 2m-2s-sync 双主双从同步双写模式 2m-noslave 双主模式 ● lib 存放的依赖jar包 测试namesrv的启动 启动命令: nohup /Users/gitsilence/JavaTools/rocketmq/rocketmq-4.9.2-SNAPSHOT/bin/mqnamesrv0 码力 | 11 页 | 284.35 KB | 1 年前3
Apache RocketMQ 介绍Apache RocketMQ 介绍 概要 Apache RocketMQ是一个分布式消息传递和流媒体平台,具有低延迟,高性能和可靠性,万亿级容 和灵活的可伸缩性。它的一个重要特性是支持非日志类型的可靠消息传送,非常适合运用在金融和电 商务领域。目前他是Apache社区的顶级项目,在全球有超过100家公司在其业务中使用RocketMQ 开源版本。 诞生 RocketMQ起源于阿里巴巴。阿0 码力 | 5 页 | 375.48 KB | 1 年前3
共 9 条
- 1













