什么是SOA?

什么是SOA?

面向服务的架构(SOA)是一个组件模型,全称:Service Oriented Architecture,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和协议联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种各样的系统中的服务可以以一种统一和通用的方式进行交互。

个人理解:比如五代十国的时候,各国有各国的货币这样不同国家的人交易起来特别麻烦,后面统一一种货币比如黄金,然后大家可以更顺利交易,因为不会因为货币的不同导致各种麻烦。这种就类似现在各国的货币统一兑换系统一样。

SOA解决了什么问题?

统一了规范和标准,让程序无法直接访问其他服务的数据,解决多套、多种系统互相通讯或交互的问题。其实就像一个协议,你该干嘛就干嘛,哪些不能干。

SOA优缺点?

优点:

提高复用率:传统针对不同系统或第三方都需要对应一套与之对应的接口或系统,而soa一套搞定;

易拓展、更灵活、更规范、更安全:SOA接口与实现分离,在一定场景可以对实现修改不会影响接口也不需重新对接,并且需要得新新加一个接口或功能很容易就加上去了,也可以让提到接口封装的效果及安全性保证;

缺点:

排查问题不便:因为大家都用你的系统,一但出现问题,因为是分布式和多环境,具体哪里出问题,需要一点一点排查不是很方便。(当然现在可以做监控具体到方法)

关系复杂:由于大家间都在互相调用会导致,最后有一个问题可能要找人不是很方便,所以建议用责任人标记表,遇到问题直接找责任人。(特别中等规模公司)

性能难保:因为都是互相调用,你能保证自己但无法保证别人的性能,所以会导致a用了你的服务,你又用了c的服务,但是a觉得你b有性能问题,但其实是c导致的....

最后

SOA就是一种思想,将这种思想提升成一种契约或协议,然后大家共用遵循,解耦、提升性能、提升安全性等,当然跟微服务是有区别的可以参照如下参考。

参考:

https://baike.baidu.com/item/SOA/2140650

https://developer.51cto.com/art/202003/613516.htm

https://blog.csdn.net/chszs/article/details/78515231

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注