一.微服务诞生前的传统Java项目架构:单体架构
在微服务正式应用于项目架构体系时,传统的Java项目架构一般为单体架构。这种单体架构的特点是将所有的业务功能集中在一个项目中进行开发和测试,最终上线时将此项目打包进行部署。这种单体架构的有点是架构简单易上手,并且在部署时操作容易,只需将一个项目打包即可。
但是它也有一个致命的缺陷,即每个业务功能之间的耦合度太高,如果其中一个业务的功能出现问题,那么整个项目都得停下进行维护,不然项目运行就会发生崩溃或者异常,具体的单体架构示意图如图1.1所示。
图1.1 单体架构示意图
二.微服务前身:分布式架构
针对于单体架构中出现的各个业务功能耦合度过高的问题,一些聪明的开发人员将传统的单体架构进行了改造,将原来大量集中式的项目架构依据业务功能数量进行分解为一个个的单体架构,将每个业务模块作为独立项目开发,并称为一个服务,具体的分布式架构示意图如图1.2所示。
图1.2 分布式架构示意图
将每个业务功能模块抽出来独立成一个单独的服务进行开发,这样的做法虽然在一定程度上降低了整体项目中各个功能模块之前的耦合度,但是其中仍存在着不少的问题,例如每个服务拆分到什么程度?每个服务之间的集群地址如何维护? 服务之间的功能如何实现远程调用? 服务的健康状态如何感知?......这些都是每个开发人员在使用分布式架构时需要考虑的问题。
所以为了解决分布式架构存在的一系列问题,微服务便由此应运而生。
三.什么是微服务
微服务是一种经过良好架构设计的分布式架构方案,它的出现即是为了解决一般的分布式架构产生的问题。
微服务架构特征:
(一)单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责,避免重复业务开发。
(二)面向服务:微服务对外暴露业务接口。
(三)自治:团队独立、技术独立、数据独立、部署独立。
(四)隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题。
微服务架构示意图如图1.3所示。
图1.3 微服务架构示意图
标签:服务,项目,单体,Java,简单,架构,示意图,分布式 From: https://www.cnblogs.com/OnePunchBlog/p/16601086.html