本文主要是对微服务及其发展做一个简单的介绍,在了解什么是微服务前,我们有必要先了解下互联网的发展过程与现状,总的来说,互联网的发展大致经历了这三个阶段:单体应用 —> SOA —> 微服务,这三者的关系如下:
image.png
首先第一个阶段是单体应用阶段,在这个阶段,所有模块都聚集在一个应用程序上,注意我这里用模块来描述,这是因为在一个应用中,各部分用模块或组件来描述比较合适。单体应用比较著名的结构是MVC架构,这种方式请求链路简单直接,缺点是随着应用规模的变大,代码复杂度变高,协作效率变低,且牵一发而动全身,如果某一个模块挂了可能会导致整个应用挂掉。另外,单体应用的扩容也是个大问题,因为一扩容的话就得所有模块都扩容,没办法针对个别模块,服务器成本耗费较大。
第二阶段就到了SOA阶段。既然单体应用的缺点这么多,而互联网又是不断更新迭代的,所以就出现了改良的SOA架构,SOA架构全称Service Oriented Architecture,中文译为面向服务的架构。其实SOA非常好理解,既然单体应用的劣势是由于众多模块耦合在一起导致的,那最简单的办法就是拆开来!
之所以用应用,而不是服务来描述,是我在阅读一系列文章后,发现SOA架构与后面的微服务架构还是有一些细微差别,典型的有SOA架构是比较粗粒度的拆分,而微服务是比较细粒度的拆分,所以我个人感觉用应用来描述更为合适。
另外,SOA架构还有一个ESB组件,即企业服务总线。之所以有这个组件,是因为SOA架构允许跨多种服务、平台和编程语言运行,这极大地提高其扩展性。但与之相对,不同编程语言、不同协议的应用直接通信会比较麻烦,所以就出现ESB这个“中介”,用来协调各个应用之间的通信,这样各个应用之间的交互也会更加清晰。用我看过的一篇文章的一句话,ESB 可以简单理解为:它做了消息的转化解释和路由工作,让不同的服务互联互通!
第三阶段就到了微服务阶段,详情可以戳这里继续了解:https://mp.weixin.qq.com/s/pwyi1uuu5dDyZ6qeBIb1Fw
网友评论