架构解码:模式与实践

软件架构与模式
帅旋
关注
充电
IT宅站长,技术博主,架构师,全网id:arthinking。

架构演变之路:SOA

发布于 2020-04-03 | 更新于 2024-05-16

早期的分布式系统是基于面向服务的架构SOA。SOA是微服务的前身,主要是为了摆脱单体应用的问题,达到以下效果:

  • 充分利用现有的基础设施;
  • SOA体系结构依赖于消息传递(AMQP,MSMQ)和SOAP作为主要的远程访问协议。
  • 快速响应业务变化;

根据一位印度小哥的介绍,我画了下面这张SOA的架构图:

image-20200331221123493

也就是说,异构系统,也可以通过消息中间件的协议转换进行相互调用。一般这个消息中间件通常是用ESB企业总线实现的。ESB 是传统中间件技术与XML、Web服务等技术相互结合的产物,消除了不同应用之间的技术差异,让不同的应用服务器协调运作,实现了不同服务之间的通信与整合。不同公司提供了不同的ESB中间件实现。

但是其表现并不佳,主要是其太重了,主要体现在:

  • SOA更强调系统集成的规范与便利性,对业务服务本身没有过多要求,一般服务拆分粒度不够细,模块间仍然会有比较大的耦合,迭代困难;
  • SOA服务之间的通信相对比较复杂,重量级。WebService中常用的SOAP通信协议,通常使用XML格式进行通信,数据冗余,协议过重;EBS通过总线隐藏内部复杂性,其中心化管理模式,系统变更,对系统的影响范围会扩大。
  • 在SOA模型下通常只有一个数据库,限制了系统的扩展性;
  • 服务化管理和治理设施不完善;

后来逐渐演变为了现在的MSA(Micro-Service Archeticture 微服务架构),从而实现了更加松耦合以及更加灵活的系统。

References

本文作者: 帅旋

本文链接: https://www.itzhai.com/columns/architecture/architecture-evolution/soa.html

版权声明: 版权归作者所有,未经许可不得转载,侵权必究!联系作者请加公众号。

×
IT宅

关注公众号及时获取网站内容更新。

请帅旋喝一杯咖啡

咖啡=电量,给帅旋充杯咖啡,他会满电写代码!

IT宅

关注公众号及时获取网站内容更新。