微服务(MSA) 和 面向服务架构(SOA) 的区别和联系

文章目录

  • 微服务(MSA) 和 面向服务架构(SOA) 的区别和联系
          • 1、相似之处
          • 2、区别和联系
            • 2.1、基于SOA的架构
            • 2.2、基于微服务的架构

微服务(MSA) 和 面向服务架构(SOA) 的区别和联系


1、相似之处

1、都是面向服务
2、都是基于HTTP协议

2、区别和联系

传统的SOA 一般是大而全的单块架构,MSA 是很分散的服务。
一般情况下,SOA需要对整个系统进行规范约束,但是MSA的每个服务都可以有自己的开发语言和开发方式,灵活性比SOA更高。

2.1、基于SOA的架构

1、易于部署,只需要扔war包就可以了
2、易于伸缩,只需要在负载均衡下部署应用的拷贝即可
3、拥有较为庞大的代码库,在理解业务时,会造成困扰
4、当项目随着时间的变化越来越大的时候,IDE的速度会变慢
5、Web容器超载,应用变大时,Web容器的启动时间变长
6、在持续部署上存在问题,当你只需要更新某一个组件时,必须重新部署整个应用
7、伸缩性不好,单块架构只能在一个维度伸缩
8、难以调整开发规模
9、需要对一个技术栈长期投入,比如使用Java,那么脱离JVM,Java的开发环境就不能给项目开发组件,并且,项目的迁移也受限于语言和框架层面,或者面临技术升级时,在某些情况下不得不重写整个应用

2.2、基于微服务的架构

在优点上
1、每个微服务都相对较小
2、易于开发者理解
3、IDE反应更快,开发更搞笑
4、Web 容器启动更快
5、每个服务可以独立开发,部署
6、易于伸缩开发组织架构
7、提升故障隔离
8、消除了单一技术栈的长期投入

在缺点上
1、需要分布式系统发额外复杂度
2、测试更加困难
3、实现跨服务的用例需要开发者之间的细致协作
4、生产环境的部署复杂度增加
5、更大的内存开销

你可能感兴趣的:(#,Spring,Cloud,微服务)