如何解读消息中间件的演变

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 阿里云消息负责人 ,隆基,介绍消息中间件的演进背景及演进过程。

1. 演进背景之解耦

随着软件架构复杂度的提升,由于传统单机应用系统组件较少,逐渐演进成为后来的分布式系统,以及现代的微服务,通信的依赖复杂度愈来愈高。对于早期简单的系统而言,用户一般会使用RPC,但随着组件业务复杂度的提高,则会引入消息队列,以达到异步通信之上的一种能力——解耦。


解耦,即解除耦合,让各类组件彼此互不依赖,可以进行独立的演进,这也是很多软件设计的基本理念。如今,出现了各类数字化系统,其承载着企业的业务,需要根据实际情况应对市场的变化,进行快速的发展。业务要发展,则承载其发展的数字化系统就要保证其各种应用系统可以实现快速迭代,研发人员也要完成高效协作。于是,消息队列解耦的能力逐渐被视为重中之重,用户也越来越多。

 

2. 演进过程

在多年的演进过程中,其内在的本质变化微乎其微,仍旧是解耦。但是,应用很多维护的量级都在发生变化,因此近年来仍旧出现了各种各样的消息队列。这一点可以从流量的角度分析。

2.1 单机系统时期

在早期,大部分公司使用的系统都属于信息化系统,用户很少,一般多为企业内部的员工。随着业务的发展,虽然一些银行也推出了很多系统,但访问这些系统的仅为柜员或ATM机,均为较低并发的访问模式。这类访问模式,早期的单机系统足以满足其流量需求,如IBMMQ,以及后期出现的ActiveMQRabbitMQ等。

2.2 互联网时代——分布式系统

随着世界进入互联网时代,绝大多数的应用软件会面向全世界的人使用,访问量大幅攀升,单机系统再无法承载如此庞大的访问量,分布式的消息对列出现,如NotifyRocketMQKafaka等。当流量上涨时,它们可以通过加机器不断扩展其集群的容量。在需求的支配下,分布式时代的架构逐渐替代了原有的单机系统架构。

2.3 云时代

再到后来,消息队列依赖的底层计算存储网络资源发生变化。早期,计算存储网络资源多为物理机或虚拟机,在云时代,计算存储网络资源被池化,迁移至公共云。可以以汽车为类比,早期使用的是燃油车,其技术是基于燃油而演进的,如发动机、变速箱,但在新能源时代,其底层原理发生了变化,由然后变为了新能源电池,因此,发动机、变速箱等方面的技术被重新置换,为新能源车企提供了全新的发展机会,实现换道超车。云原生时代与之十分相似,各类基础软件依赖的底层资源变成了弹性资源。换言之,在保持消息本质不变的基础上,其实现方式需要随之改变变化,需要面向云的弹性计算、弹性存储、弹性网络做技术升级,使其各类技术指标能够基于云的IaaS弹性体系进一步的提升,如弹性速度、存储成本等,其产品的形态演进到Serverless化的形态,由软件变成服务,由原本的自研变为按需付费、按量付费。如人饮水,原本需要自己挖井取水,如今演变成为自来水模式,按使用量付费,这就是整个演进的过程。

相关文章
|
6天前
|
算法 NoSQL Java
2023年阿里高频Java面试题:分布式+中间件+高并发+算法+数据库
又到了一年一度的金九银十,互联网行业竞争是一年比一年严峻,作为工程师的我们唯有不停地学习,不断的提升自己才能保证自己的核心竞争力从而拿到更好的薪水,进入心仪的企业(阿里、字节、美团、腾讯.....)
|
9月前
|
NoSQL Java Redis
阿里Java高级岗中间件二面:GC+IO+JVM+多线程+Redis+数据库+源码
虽然“钱多、事少、离家近”的工作可能离技术人比较远,但是找到一份合适的工作,其实并不像想象中那么难。但是,有些技术人确实是认真努力工作,但在面试时表现出的能力水平却不足以通过面试,或拿到高薪,其实不外乎以下 2 个原因:
|
9月前
|
算法 NoSQL Java
2023年阿里高频Java面试题:分布式+中间件+高并发+算法+数据库
又到了一年一度的金九银十,互联网行业竞争是一年比一年严峻,作为工程师的我们唯有不停地学习,不断的提升自己才能保证自己的核心竞争力从而拿到更好的薪水,进入心仪的企业(阿里、字节、美团、腾讯.....)
|
9月前
|
算法 NoSQL Java
2021年阿里高频Java面试题:分布式+中间件+高并发+算法+数据库
又到了一年一度的金九银十,互联网行业竞争是一年比一年严峻,作为工程师的我们唯有不停地学习,不断的提升自己才能保证自己的核心竞争力从而拿到更好的薪水,进入心仪的企业(阿里、字节、美团、腾讯.....)
|
10月前
|
消息中间件 安全 Java
全网首发!消息中间件神仙笔记,涵盖阿里十年技术精髓
消息中间件是分布式系统中的重要组件,在实际工作中常用消息中间件进行系统间数据交换,从而解决应用解耦、异步消息、流量削峰等问题,实现高性能、高可用、可伸缩和最终一致性架构。
|
10月前
|
消息中间件 数据采集 Java
开发神技!阿里消息中间件进阶手册限时开源,请接住我的下巴
相信大家在实际工作中都用过消息中间件进行系统间数据交换,解决应用解耦、异步消息、流量削峰等问题,由此消息中间件的强大功能想必也不用我多说了!目前业界上关于消息中间件的实现多达好几十种,可谓百花齐放,所用的实现语言同样也五花八门。不管使用哪一个消息中间件,我们的目的都是实现高性能、高可用、可伸缩和最终一致性架构。
|
12月前
|
缓存 NoSQL 容灾
《Java应用提速(速度与激情)》——六、阿里中间件提速
《Java应用提速(速度与激情)》——六、阿里中间件提速
|
12月前
|
消息中间件 NoSQL Dubbo
阿里Java高级岗中间件二面:GC+IO+JVM+多线程+Redis+数据库+源码
一转眼,都2023年了,你是否在满意的公司?拿着理想的薪水? 虽然“钱多、事少、离家近”的工作可能离技术人比较远,但是找到一份合适的工作,其实并不像想象中那么难。但是,有些技术人确实是认真努力工作,但在面试时表现出的能力水平却不足以通过面试,或拿到高薪,其实不外乎以下 2 个原因: 第一,“知其然不知其所以然”。做了多年技术,开发了很多业务应用,但似乎并未思考过种种技术选择背后的逻辑。所以,他无法向面试官展现出自己未来技术能力的成长潜力。面试官也不会放心把具有一定深度的任务交给他。 第二,知识碎片化,不成系统。在面试中,面试者似乎无法完整、清晰地描述自己所开发的系统,或者使用的相关技术。
2023年阿里高频Java面试题:分布式+中间件+高并发+算法+数据库
又到了一年一度的金九银十,互联网行业竞争是一年比一年严峻,作为工程师的我们唯有不停地学习,不断的提升自己才能保证自己的核心竞争力从而拿到更好的薪水,进入心仪的企业(阿里、字节、美团、腾讯.....)
|
存储 缓存 人工智能
2022互联网寒冬,看看阿里中间件团队如何降本提效?(2)
2022互联网寒冬,看看阿里中间件团队如何降本提效?
206 0