大家好,欢迎来到IT知识分享网。
一.微服务诞生前的传统Java项目架构:单体架构
在微服务正式应用于项目架构体系时,传统的Java项目架构一般为单体架构。这种单体架构的特点是将所有的业务功能集中在一个项目中进行开发和测试,最终上线时将此项目打包进行部署。这种单体架构的有点是架构简单易上手,并且在部署时操作容易,只需将一个项目打包即可。
但是它也有一个致命的缺陷,即每个业务功能之间的耦合度太高,如果其中一个业务的功能出现问题,那么整个项目都得停下进行维护,不然项目运行就会发生崩溃或者异常,具体的单体架构示意图如图1.1所示。
图1.1 单体架构示意图
二.微服务前身:分布式架构
单体框架对于业务需求量不大的企业来讲是完全足够使用,但随着企业规模的不断扩大,用户数量如果超过一定的界限,那么单体框架将会陷入“心有余而力不足”的局面,并且整个项目的成本也会随着上涨,同时单体框架出现问题的次数也会越来越多,这对企业的发展将会是毁灭性的打击。因此为了适应用户规模的扩大以及降低企业成本,一些聪明的开发人员将原来大量集中式的项目架构依据业务功能数量进行分解为一个个的单体架构,将每个业务模块作为独立项目开发,并称为一个服务,具体的分布式架构示意图如图1.2所示。
图1.2 分布式架构示意图
将每个业务功能模块抽出来独立成一个单独的服务进行开发,这样的做法虽然在一定程度上降低了整体项目中各个功能模块之前的耦合度,但是其中仍存在着不少的问题,例如每个服务拆分到什么程度?每个服务之间的集群地址如何维护? 服务之间的功能如何实现远程调用? 服务的健康状态如何感知?……这些都是每个开发人员在使用分布式架构时需要考虑的问题。
所以为了解决分布式架构存在的一系列问题,微服务便由此应运而生。
三.什么是微服务
微服务是一种经过良好架构设计的分布式架构方案,它的出现即是为了解决一般的分布式架构产生的问题。
微服务架构特征:
(一)单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责,避免重复业务开发。
(二)面向服务:微服务对外暴露业务接口。
(三)自治:团队独立、技术独立、数据独立、部署独立。
(四)隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题。
微服务架构示意图如图1.3所示。
图1.3 微服务架构示意图
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/32239.html