随着互联网的发展,网站应用的规模也在不断的扩大,进而导致系统架构也在不断的进行变化。从互联网早起到现在,系统架构大体经历了下面几个过程:单体应用架构-->垂直应用架构-->分布式架构-->SOA架构-->微服务架构,当然还有悄然兴起的Service Mesh(服务网格化)。接下来我们就来了解一下每种系统架构是什么样子的,以及各有什么优缺点。
互联网早期,一般的网站应用流量较小,只需一个应用, 将所有功能代码都部署在一起就可以, 这样可以减少开发、部署和维护的成本。比如说一个电商系统, 里面会包含很多用户管理,商品管理,订单管理,物流管理等等很多模块,我们会把它们做成一个web项目, 然后部署到-台tomcat服务器上。
优点:
缺点:
随着访问量的逐渐增大,单- -应用只能依靠增加节点来应对,但是这时候会发现并不是所有的模块都会有比较大的访问量。
还是以上面的电商为例子,用户访问量的增加可能影响的只是用户和订单模块, 但是对消息模块的影响就比较小那么此时我们希望只多增加几个订单模块,而不增加消息模块.此时单体应用就做不到了,垂直应用就应运而生了。
所谓的垂直应用架构,就是将原来的-一个应用拆成互不相干的几个应用,以提升效率。比如我们可以将上面电商的单体应用拆分成:
这样拆分完毕之后,一旦用户访问量变大,只需要增加电商系统的节点就可以了,而无需增加后台和CMS的节点。
当垂直应用越来越多,重复的业务代码就会越来越多。这时候,我们就思考可不可以将重复的代码抽取出来,做成统一的业务层作为独立的服务,然后由前端控制层调用不同的业务层服务呢?这就产生了新的分布式系统架构。它将把工程拆分成表现层和服务层两个部分,服务层中包含业务逻辑。表现层只需要处理和页面的交互,业务逻辑都是调用服务层的服务来实现。
优点:
缺点:
在分布式架构下,当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心对集群进行实时管理。此时,用于资源调度和治理中心(SOA Service OrientedArchitecture,面向服务的架构)是关键。
优点:
缺点:
微服务架构在某种程度上是面向服务的架构SOA继续发展的下一步,它更加强调服务的"彻底拆分"。
优点:
缺点:
以上就是这份SpringCloud ALiBaba笔记的开头部分,带你了解了单体到微服务的一个过程,由于这份笔记页数过多,所以以下小编只能展示目录给大家。需要获取完整版SpringCloud ALiBaba笔记的朋友可以转发一下这篇文章+关注我,然后私信我【666】获取完整版笔记!
我们本次是使用的电商项目中的商品、订单、用户为案例进行讲解。
在微服务架构中,我们将业务拆分成一个个的服务,服务与服务之间可以相互调用,但是由于网络原因或者自身的原因,服务并不能保证服务的100%可用,如果单个服务出现问题,调用这个服务就会出现网络延迟,此时若有大量的网络涌入,会形成任务堆积,最终导致服务瘫痪。
需要获取完整版SpringCloud ALiBaba笔记的朋友可以帮忙点赞一下,GitHub免费获取链接:https://github.com/biws-byte/zhym
在大型系统的微服务化构建中,-个系统被拆分成了许多模块。这些模块负责不同的功能,组合成系统,最终可以提供丰富的功能。在这种架构中,一次请求往往需要涉及到多个服务。互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发、可能使用不同的编程语言来实现、有可能布在了几千台服务器,横跨多个不同的数据中心,也就意味着这种架构形式也会存在一些问题: .
短信服务(Short Message Service)是阿里云为用户提供的- -种通信服务的能力。
事务指的就是一个操作单元,在这个操作单元中的所有操作最终要保持一致的行为, 要么所有操作都成功,要么所有的操作都被撤销。简单地说,务提供一种“要 么什么都不做,要么做全套"机制。
需要获取完整版SpringCloud ALiBaba笔记的朋友可以帮忙点赞一下,GitHub免费获取链接:https://github.com/biws-byte/zhym