 Apache RocketMQ 从入门到实战开源社区的方式 6 1.1 RocketMQ 核心概念扫盲篇 10 1.2 生产环境中,autoCreateTopicEnable 为什么不能设置为 true 18 1.3 实战:RocketMQ 学习环境搭建指南篇 28 1.4 RocketMQ HA 核心工作机制 39 1.5 踩坑记:rocketmq-console 消费 TPS 为 0,但消息积压数却在降低是个什么 “鬼” 49 1 一个开源项目的底层都会涉及到存储,这就要求具备一定的数据结构基础,JAVA 集 合框架中的类自然成为了我们突破数据结构最好的老师,其次是 java 并发,即多线程、并 发容器、锁等课题,这方面可以好好学习一下 JUC 框架。最后最好是具备一些网络方面的 知识,例如 NIO、Netty。 2. 持续输出能力 成为一个开源项目的 contributions 非常容易,提交一个 PR 并被通过即可,甚至于 少要包括 JAVA 集合、JAVA 并发(JUC)这两项,只是最最基本的,至少要阅读其源码, 理解其设计理念,至于 NIO,Netty 这些可以后续在需要使用时再去专门学习,有针对性 的学习,有使用需求,或许学习动力更强劲,学习效率更高效。 当具备一定的基础后,如何从零开始参与进开源项目呢?通常有如下几个方法:  看看官方文档,特别是设计手册,从整体上把握其设计理念。  写写源码分析类0 码力 | 165 页 | 12.53 MB | 1 年前3 Apache RocketMQ 从入门到实战开源社区的方式 6 1.1 RocketMQ 核心概念扫盲篇 10 1.2 生产环境中,autoCreateTopicEnable 为什么不能设置为 true 18 1.3 实战:RocketMQ 学习环境搭建指南篇 28 1.4 RocketMQ HA 核心工作机制 39 1.5 踩坑记:rocketmq-console 消费 TPS 为 0,但消息积压数却在降低是个什么 “鬼” 49 1 一个开源项目的底层都会涉及到存储,这就要求具备一定的数据结构基础,JAVA 集 合框架中的类自然成为了我们突破数据结构最好的老师,其次是 java 并发,即多线程、并 发容器、锁等课题,这方面可以好好学习一下 JUC 框架。最后最好是具备一些网络方面的 知识,例如 NIO、Netty。 2. 持续输出能力 成为一个开源项目的 contributions 非常容易,提交一个 PR 并被通过即可,甚至于 少要包括 JAVA 集合、JAVA 并发(JUC)这两项,只是最最基本的,至少要阅读其源码, 理解其设计理念,至于 NIO,Netty 这些可以后续在需要使用时再去专门学习,有针对性 的学习,有使用需求,或许学习动力更强劲,学习效率更高效。 当具备一定的基础后,如何从零开始参与进开源项目呢?通常有如下几个方法:  看看官方文档,特别是设计手册,从整体上把握其设计理念。  写写源码分析类0 码力 | 165 页 | 12.53 MB | 1 年前3
 消息中间件RocketMQ原理解析 - 斩秋前言 此文档是从学习 rocketmq 源码过程中的笔记中整理出来的,由于时间及能力原因,理 解有误之处还请谅解,希望对大家学习使用 rocketmq 有所帮助。 Rocketmq 是阿里基于开源思想做的一款产品,代码托管于 github 上,要想学好用好 rocketmq broker 机器,在通过 broker 的主从复制机制拷贝到 broker 的 slave 上去 二:Producer 如何发送消息 Producer 轮询某 topic 下的所有队列的方式来实现发送方的负载均衡 1) Topic 下的所有队列如何理解: 比如 broker1, broker2, borker3 三台 broker 机器都配置了 Topic_A Map 消息中间件RocketMQ原理解析 - 斩秋前言 此文档是从学习 rocketmq 源码过程中的笔记中整理出来的,由于时间及能力原因,理 解有误之处还请谅解,希望对大家学习使用 rocketmq 有所帮助。 Rocketmq 是阿里基于开源思想做的一款产品,代码托管于 github 上,要想学好用好 rocketmq broker 机器,在通过 broker 的主从复制机制拷贝到 broker 的 slave 上去 二:Producer 如何发送消息 Producer 轮询某 topic 下的所有队列的方式来实现发送方的负载均衡 1) Topic 下的所有队列如何理解: 比如 broker1, broker2, borker3 三台 broker 机器都配置了 Topic_A Map- > 遍历 Map - >的 brokername, 获取 broker 的 master 机器地址,将 brokerName 的 Set - 发送到 broker 请求锁定这些队列。 在 broker 端锁定队列,其实就是在 broker 的 queue 中标记一下消费端,表示这个 0 码力 | 57 页 | 2.39 MB | 1 年前3
 RocketMQ v3.2.4 开发指南.......................................................................... 25 7.14 单个 JVM 迕程也能利用机器超大内存 .............................................................................................. Consumer Group 中的 Consumer 实例平均分摊消费消息。例如某个 Topic 有 9 条消息,其中一个 Consumer Group 有 3 个实例(可能是 3 个迕程,戒者 3 台机器),那举每个实例只消费其中的 3 条消息。 在 CORBA Notification 规范中,无此消费方式。 在 JMS 规范中,JMS point-to-point model 不乀类似,但是 宕机戒者重启)下,消息短暂的乱序,使用普通顺序方 式比较合适。  严格顺序消息 顺序消息的一种,无论正常异常情冴都能保证顺序,但是牺牲了分布式 Failover 特性,即 Broker 集群中只 要有一台机器丌可用,则整个集群都丌可用,服务可用性大大降低。 如果服务器部署为同步双写模式,此缺陷可通过备机自劢切换为主避免,丌过仍然会存在几分钟的服务丌 可用。(依赖同步双写,主备自劢切换,自劢切换功能目前迓未实现)0 码力 | 52 页 | 1.61 MB | 1 年前3 RocketMQ v3.2.4 开发指南.......................................................................... 25 7.14 单个 JVM 迕程也能利用机器超大内存 .............................................................................................. Consumer Group 中的 Consumer 实例平均分摊消费消息。例如某个 Topic 有 9 条消息,其中一个 Consumer Group 有 3 个实例(可能是 3 个迕程,戒者 3 台机器),那举每个实例只消费其中的 3 条消息。 在 CORBA Notification 规范中,无此消费方式。 在 JMS 规范中,JMS point-to-point model 不乀类似,但是 宕机戒者重启)下,消息短暂的乱序,使用普通顺序方 式比较合适。  严格顺序消息 顺序消息的一种,无论正常异常情冴都能保证顺序,但是牺牲了分布式 Failover 特性,即 Broker 集群中只 要有一台机器丌可用,则整个集群都丌可用,服务可用性大大降低。 如果服务器部署为同步双写模式,此缺陷可通过备机自劢切换为主避免,丌过仍然会存在几分钟的服务丌 可用。(依赖同步双写,主备自劢切换,自劢切换功能目前迓未实现)0 码力 | 52 页 | 1.61 MB | 1 年前3
 万亿级数据洪峰下的消息引擎Apache RocketMQ交易买卖家 BCP 交易安全 钉钉 淘客 航旅 发布消息峰值:数千万条/秒 订阅消息峰值:数千万条/秒 堆积消息峰值:千亿条 消息中间件核心链路 1.4万亿 万亿洪峰下有哪些问题 机器假死 IO Util,Load飙高 磁盘响应慢 消息大量堆积 网卡故障,甚至流量跑满 磁盘损坏 零点之战:发布消息SLA要求100% 慢请求开始大量增加 分布式系统雪崩 容量不足,单机热点 在线熔断机制 ①消息服务器 ②消息服务器 ③消息服务器 ④消息服务器 应用 规则 1. 最多只能隔离 30%的机器。 2. 响应时间过长, 开始隔离1分钟 3. 调用抛异常隔 离1分钟 4. 如果隔离的服 务器超过30%, 则有部分调用 会进入隔离列 表中最早隔离 的机器 1.4万亿 双十一当天高可用要求 ~~ 100% 低延迟的分布式存储系统 在线熔断机制 完善的容量评估 SLA=990 码力 | 35 页 | 993.29 KB | 1 年前3 万亿级数据洪峰下的消息引擎Apache RocketMQ交易买卖家 BCP 交易安全 钉钉 淘客 航旅 发布消息峰值:数千万条/秒 订阅消息峰值:数千万条/秒 堆积消息峰值:千亿条 消息中间件核心链路 1.4万亿 万亿洪峰下有哪些问题 机器假死 IO Util,Load飙高 磁盘响应慢 消息大量堆积 网卡故障,甚至流量跑满 磁盘损坏 零点之战:发布消息SLA要求100% 慢请求开始大量增加 分布式系统雪崩 容量不足,单机热点 在线熔断机制 ①消息服务器 ②消息服务器 ③消息服务器 ④消息服务器 应用 规则 1. 最多只能隔离 30%的机器。 2. 响应时间过长, 开始隔离1分钟 3. 调用抛异常隔 离1分钟 4. 如果隔离的服 务器超过30%, 则有部分调用 会进入隔离列 表中最早隔离 的机器 1.4万亿 双十一当天高可用要求 ~~ 100% 低延迟的分布式存储系统 在线熔断机制 完善的容量评估 SLA=990 码力 | 35 页 | 993.29 KB | 1 年前3
 万亿级数据洪峰下的消息引擎 Apache RocketMQ交易买卖家 BCP 交易安全 钉钉 淘客 航旅 发布消息峰值:数千万条/秒 订阅消息峰值:数千万条/秒 堆积消息峰值:千亿条 消息中间件核心链路 1.4万亿 万亿洪峰下有哪些问题 机器假死 IO Util,Load飙高 磁盘响应慢 消息大量堆积 网卡故障,甚至流量跑满 磁盘损坏 零点之战:发布消息SLA要求100% 慢请求开始大量增加 分布式系统雪崩 容量不足,单机热点 在线熔断机制 ①消息服务器 ②消息服务器 ③消息服务器 ④消息服务器 应用 规则 1. 最多只能隔离 30%的机器。 2. 响应时间过长, 开始隔离1分钟 3. 调用抛异常隔 离1分钟 4. 如果隔离的服 务器超过30%, 则有部分调用 会进入隔离列 表中最早隔离 的机器 1.4万亿 双十一当天高可用要求 ~~ 100% 低延迟的分布式存储系统 在线熔断机制 完善的容量评估 SLA=990 码力 | 35 页 | 5.82 MB | 1 年前3 万亿级数据洪峰下的消息引擎 Apache RocketMQ交易买卖家 BCP 交易安全 钉钉 淘客 航旅 发布消息峰值:数千万条/秒 订阅消息峰值:数千万条/秒 堆积消息峰值:千亿条 消息中间件核心链路 1.4万亿 万亿洪峰下有哪些问题 机器假死 IO Util,Load飙高 磁盘响应慢 消息大量堆积 网卡故障,甚至流量跑满 磁盘损坏 零点之战:发布消息SLA要求100% 慢请求开始大量增加 分布式系统雪崩 容量不足,单机热点 在线熔断机制 ①消息服务器 ②消息服务器 ③消息服务器 ④消息服务器 应用 规则 1. 最多只能隔离 30%的机器。 2. 响应时间过长, 开始隔离1分钟 3. 调用抛异常隔 离1分钟 4. 如果隔离的服 务器超过30%, 则有部分调用 会进入隔离列 表中最早隔离 的机器 1.4万亿 双十一当天高可用要求 ~~ 100% 低延迟的分布式存储系统 在线熔断机制 完善的容量评估 SLA=990 码力 | 35 页 | 5.82 MB | 1 年前3
 Apache RocketMQ on Amazon Web Servicesprofile,如下图 Page 16 of 18 8. 完成了上面这步之后,浏览器就会将所有的流量通过本地的 40011 端⼝ proxy 到 Bastion Host 机器。 9. 在浏览器中输⼊部署好的任何一个 Nameserver 的私有 ip 地址加上 8080 端⼝ (http://10.0.6.235:8080),你可以通过 EC2 Console 找到0 码力 | 18 页 | 1.55 MB | 1 年前3 Apache RocketMQ on Amazon Web Servicesprofile,如下图 Page 16 of 18 8. 完成了上面这步之后,浏览器就会将所有的流量通过本地的 40011 端⼝ proxy 到 Bastion Host 机器。 9. 在浏览器中输⼊部署好的任何一个 Nameserver 的私有 ip 地址加上 8080 端⼝ (http://10.0.6.235:8080),你可以通过 EC2 Console 找到0 码力 | 18 页 | 1.55 MB | 1 年前3
 快速部署高可用的Apache RocketMQ 集群 - Amazon S3profile,如下图 Page 19 of 21 8. 完成了上面这步之后,浏览器就会将所有的流量通过本地的 40011 端口 proxy 到 Bastion Host 机器。 9. 在浏览器中输入部署好的任何一个 Nameserver 的私有 ip 地址加上 8080 端 口(http://10.0.6.235:8080),你可以通过 EC2 Console 找到0 码力 | 21 页 | 2.57 MB | 1 年前3 快速部署高可用的Apache RocketMQ 集群 - Amazon S3profile,如下图 Page 19 of 21 8. 完成了上面这步之后,浏览器就会将所有的流量通过本地的 40011 端口 proxy 到 Bastion Host 机器。 9. 在浏览器中输入部署好的任何一个 Nameserver 的私有 ip 地址加上 8080 端 口(http://10.0.6.235:8080),你可以通过 EC2 Console 找到0 码力 | 21 页 | 2.57 MB | 1 年前3
共 7 条
- 1













