微服务架构,spring boot01

什么是微服务架构

先要说说单体架构,java Web工程通常会被打包成WAR包部署在Web服务器上,而普通java工程会以JAR包的形式包含在War包中
单体架构易于部署,用户不多时,完全满足需求,但是用户增加时通常需要水平扩展(增加服务器的数量)通过负载均衡器实现,但因此产生了很多的问题
具体表现如下:
1、 应用复杂度增加,更新、维护困难
2、 易造成资源浪费
3、 影响开发效率
4、 应用可靠性低
5、 不利于技术的更新
针对传统单体架构的问题,大部分企业**通过SOA(面向服务架构)**来解决上述问题
在这里插入图片描述

可以看出,SOA将原来的单体架构按照功能细分为不同的子系统,然后再由各个子系统依赖服务中间件来调用所需服务。
采用soa可以将系统切分为多个组件,这种方式有很多好处,例如
1、 将项目拆分为若干个子项目,不同的团队可以负责不同的子项目,从而提高开发效率
2、 把模块拆分,使用接口通信,降低了模块之间的耦合度
3、 为企业的现有资源带来了更好的重用性
4、 能够在最新的和现有的应用上创建应用
5、 能够升级单个服务或者服务消费者而无需重写整个应用,也无需保留意见不在使用于新需求的现有系统
虽然soa解决的单体架构中的问题,但是多数情况下SOA中服务任会部署在同一个运行环境下。随着业务的增加,服务会越来越复杂。真的这种问题,微服务解决了这一系列问题
微服务架构是一种架构风格和架构思想,它倡导我们在传统软件应用架构基础上,将系统业务按照功能拆分为更加细粒度的服务,所拆分的每一个服务都是一个独立的应用,这些应用对外提供公共的API,可以独立承担对外服务的职责,通过此种思想方式所开发的软件服务实体就是“微服务“,而围绕着微服务思想构建的一系列体系结构(包括开发、测试、部署等),我们可以将它称之为”微服务架构”。
微服务和微服务架构是两个不同的概念。微服务强调的是服务的大小,它关注的是某一个点,而微服务架构是一种架构思想,需要从整体上对软件系统进行全面的考虑