一、背景
随着移动互联网的迅猛发展,各大互联网公司的体量、业务呈现指数式增长,在业务的反哺与逼迫下,分布式技术架构随之遍地开花,其中以SOA服务技术架构,微服务技术架构等为主的分布式架构如火如荼地发展。在这种大趋势之下,互联网企业也开始面临着数据采集,数据异构,系统整合等诸多问题,而CORBA、DCOM、RMI等RPC中间件技术也应运而生,但由于采用RPC同步处理技术,在性能、健壮性、可扩展性上都存在着诸多缺点,消息队列以异步处理,非阻塞调用的技术模型悄然登场,并迅速成为分布式架构的宠儿。
二、主流消息队列比较
以下表格摘取自apache rocketmq官方文档
阿里云消息队列上有另外一份对比:https://help.aliyun.com/document_detail/52577.html?spm=a2c4g.11186623.6.540.WVgch7
为何选择RocketMQ
- 消息不丢失【重点】
- 强大的技术团队,健壮的社区力量
- 采用Java编写实现,技术体系上更符合团队抉择
- 架构主轻量,组件无状态,可独立部署
- 高可用性,高吞吐量,性能好
- 经历多年阿里巴巴双十一挑战,不管是从业务复杂度,还是高流量并发都扛下来了,故而实践上毋庸置疑
三、简而言之RocketMQ架构
RocketMQ架构分为四个模块
1、生产者
2、消费者
3、namesrv
4、broker