RocketMQ v3.2.4 开发指南
.............................................................................. 34 11.3 Message 数据结构 ................................................................................................. Message Queue 项目开源主页:https://github.com/alibaba/RocketMQ 4 在 RocketMQ 中,所有消息队列都是持丽化,长度无限的数据结构,所谓长度无限是挃队列中的每个存储 单元都是定长,访问其中的存储单元使用 Offset 来访问,offset 为 java long 类型,64 位,理论上在 100 年内丌会溢出,所以讣为是 HA,同步双写/异步复制 异步复制的实现思路非常简单,Slave 启劢一个线程,丌断从 Master 拉叏 Commit Log 中的数据,然后在异步 build 出 Consume Queue 数据结构。整个实现过程基本同 Mysql 主从同步类似。 项目开源主页:https://github.com/alibaba/RocketMQ 26 7.14 单个 JVM 进程也能利用机器超大内存0 码力 | 52 页 | 1.61 MB | 1 年前3Apache RocketMQ 从入门到实战
情 况不符合,那成为一个开源项目的 Committer 有些什么条件呢? 1. 扎实的 Java 基础功底 一个开源项目的底层都会涉及到存储,这就要求具备一定的数据结构基础,JAVA 集 合框架中的类自然成为了我们突破数据结构最好的老师,其次是 java 并发,即多线程、并 发容器、锁等课题,这方面可以好好学习一下 JUC 框架。最后最好是具备一些网络方面的 知识,例如 NIO、Netty。 "clusterAddrTable": { "DefaultCluster": ["broker-a","broker-b"] } } 代码@2:遍历集群中的 brokerAddrTable 数据结构,即存储了 broker 的地址信 息的 Map 。 代码@3:分别向集群中的主节点(brokerData.selectBrokerAddr()) 获取所有的订 阅关系(即消费组的订阅信息)。然后将所有的消费者组名称存入 @2 } 代码@1:构建统计 key,其逻辑为:其键为:topic@consumerGroup,即消息主 题@消费组名。 要读懂 代码@2 的代码,先来看一下 rocketmq 监控指标的存储数据结构,如下图 所示: 正如上图所示:RocketMQ 使用 HashMap来存储监 控收集的数据,其中 Key 为监控指标的类型,例如 topic 0 码力 | 165 页 | 12.53 MB | 1 年前3
共 2 条
- 1