06-SOA架构介绍

SOA Service-oriented_architecture

面向服务的体系结构(SOA)是一种软件设计风格,其中服务通过应用组件的形式,通过网络通信协议给其他组件提供服务。面向服务的体系结构的基本原则独立于厂商,产品和技术的。[1]服务是一个独立的功能单元,可以远程访问并独立操作和更新,例如在线检索信用卡对帐单。

根据SOA众多特征可以总结出4个属性:

  • 在逻辑上SOA表示有指定结果的业务活动
  • SOA是自包含的(自身是完整的范围)
  • 对调用者来说,SOA是个黑盒
  • SOA可以包含一些底层服务

SOA 6个核心价值

  1. 商业价值比技术战略更重要。
  2. 战略目标比项目特定的利益更重要。
  3. 内部可操作性比定制集成更重要。
  4. 共享服务比指定用途实现更重要。
  5. 灵活性比优化更重要。
  6. 进化精炼比追求初始完美更重要。

缺点

  1. 服务之间存在信息屏障
  2. 服务之间的网络调用代价比单体程序进程内调用更高,更加浪费资源
  3. 测试部署更加麻烦
  4. 服务间的职责迁移更加困难,可能涉及到多个团队,需要用另一种语言重新编写同一种功能,或适配不同的接口
  5. 服务拆分过细时会导致服务数量变多
  6. 事务分段提交是微服务的痛点,两次提交会导致参与的部分极度耦合,但是这种保持数据一致性的技术又必须存在
  7. 部署支持这些由不同工具、技术开发的微服务更加具有挑战性——工程师可能需要面临在不同工程中来回适应的问题

参考

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/