SOA Service-oriented_architecture
面向服务的体系结构(SOA)是一种软件设计风格,其中服务通过应用组件的形式,通过网络通信协议给其他组件提供服务。面向服务的体系结构的基本原则独立于厂商,产品和技术的。[1]服务是一个独立的功能单元,可以远程访问并独立操作和更新,例如在线检索信用卡对帐单。
根据SOA众多特征可以总结出4个属性:
- 在逻辑上SOA表示有指定结果的业务活动
- SOA是自包含的(自身是完整的范围)
- 对调用者来说,SOA是个黑盒
- SOA可以包含一些底层服务
SOA 6个核心价值
- 商业价值比技术战略更重要。
- 战略目标比项目特定的利益更重要。
- 内部可操作性比定制集成更重要。
- 共享服务比指定用途实现更重要。
- 灵活性比优化更重要。
- 进化精炼比追求初始完美更重要。
缺点
- 服务之间存在信息屏障
- 服务之间的网络调用代价比单体程序进程内调用更高,更加浪费资源
- 测试部署更加麻烦
- 服务间的职责迁移更加困难,可能涉及到多个团队,需要用另一种语言重新编写同一种功能,或适配不同的接口
- 服务拆分过细时会导致服务数量变多
- 事务分段提交是微服务的痛点,两次提交会导致参与的部分极度耦合,但是这种保持数据一致性的技术又必须存在
- 部署支持这些由不同工具、技术开发的微服务更加具有挑战性——工程师可能需要面临在不同工程中来回适应的问题
参考
wikipedia_Service-oriented_architecture
wikipidia_Microsercices
[1]”Chapter 1: Service Oriented Architecture (SOA)”. msdn.microsoft.com. Archived from the original on February 6, 2016. Retrieved September 21, 2016.
喜欢请点个赞
转载请注明出处:https://www.jianshu.com/u/4915ed24d1e3
如有错误,请务必不吝指正。谢谢
我的博客:https://xzing.github.io/