Apache RocketMQ 基础概念及架构解析
Apache RocketMQ 系列介绍:
Apache RocketMQ之JMS基本概念及使用:https://blog.youkuaiyun.com/qq_34002221/article/details/85224067
Apache RocketMQ 基础概念及架构解析:https://blog.youkuaiyun.com/qq_34002221/article/details/85255791
Apache RocketMQ 的基础特性介绍:https://blog.youkuaiyun.com/qq_34002221/article/details/85552259
Apache RocketMQ 集群搭建(两主两从):https://blog.youkuaiyun.com/qq_34002221/article/details/85552330
Apache RocketMQ 刷盘策略与复制策略:https://blog.youkuaiyun.com/qq_34002221/article/details/85565567
主要介绍:
一、RocketMQ起源
二、RocketMQ的概念模型
三、RocketMQ的存储模型
四、RocketMQ的部署模型
五、RocketMQ最佳实践总结 (后面介绍)
优秀博客:
https://blog.youkuaiyun.com/BtB5e6Nsu1g511Eg5XEg/article/details/83828893
https://blog.youkuaiyun.com/GV7lZB0y87u7C/article/details/78382605
https://blog.youkuaiyun.com/qq_34021712/article/details/78169014
https://blog.youkuaiyun.com/babyupup/article/details/72642571
https://www.jianshu.com/p/f90b0f175e2d
一、RocketMQ的起源
通常,每个产品的诞生都源于一个具体的需求或问题,RocketMQ也不例外。起初,产品的原型像一个巨石,把所有需要实现的程序和接口都罗列到一起。但随着公司业务的发展,所有的系统和功能都在这个巨石上开发,当覆盖几百上千名开发人员的时候,瓶颈就出来了。这时候,就需要我们把系统进行分解。
分解后,就出现了上图中的分布式架构,这类架构最大的特点就是解耦,而RocketMQ的异步解耦意味着底层的重构不会影响到上层应用的功能。RocketMQ另一个优势是削峰填谷,在面临流量的不确定性时,实现对流量的缓冲处理。此外,RocketMQ的顺序设计特性使得RocketMQ成为一个天然的排队引擎,例如,三个应用同时对一个后台引擎发起请求,排队引擎的特性可以确保不会引起“撞车”事故。
总结:RocketMQ的作用(消息中间件):解耦、削峰填谷、高并发,或者说:异步消息处理、高性能(高并发读写)、高可用(主备)、可伸缩(削峰填谷)、最终一致性。
补充:
在2007年的时候,淘宝实施了“五彩石”项目,“五彩石”用于将交易系统从单机变成分布式,也是在这个过程中产生了阿里巴巴第一代消息引擎——Notify。
在2010年的时候,阿里巴巴B2B部门基于ActiveMQ的5.1版本也开发了自己的一款消息引擎,称为Napoli,这款消息引擎在B2B里面广泛地被使用,