面向服务架构(Service-Oriented Architecture)是一种 IT 架构策略。SOA 已经逐渐地成为业界的标准。网络
由于 SOA 常常和 Web Service 相提并论,认为这二者是等同的,其实否则。虽然二者有不少的关联,但它们是大相径庭的两个概念,或者说考虑问题的角度不一样。架构
虽然 SOA 最初的流行离不开 Web Service 的贡献,但现在 SOA 早已超越了 Web Service 的范畴,变成一个独立的设计理念。异步
【SOA 的局限性】spa
SOA 主要从系统解构的角度入手,它侧重于将整个应用分解为一系列独立的服务,并指定各类标准和基础设施来使得这些服务易于重用,可以很容易地被各类平台上的应用来使用。可是在服务实际业务时出现了一些问题,由于 SOA 更多地是关注静态的信息,因此不能很好地与动态业务匹配。好比 SOA 不能很好地回答相似下面的一些问题:线程
好比在一个证券公司,有很完善的交易系统、后台系统、帐务系统和头寸管理系统等,当一个客户的下单在交易所执行后,全部的这些系统都应该获得通知,并作出相应的处理。这里面其实包含了几个问题:谁来负责触发这样一个事件,各个系统如何获得通知?如何保证各个系统行动的一致性? SOA 架构因为其关注点的限制,并不能很好地解决上述问题,而这些问题每每又是实际系统很是须要的特性。所以,EDA 与 SOA 的集成引发了人们的注意。设计
经过引入面向事件的机制,使得系统具有了感知和快速响应业务事件的能力。其实无论是 SOA 仍是 EDA 都不是什么新技术,无非是在一些旧的概念上添加了一些新元素。事件
事件驱动架构(Event-Driven Architecture)ci
能够从两个方面来理解 EDA:路由
SOA是一个服务调用另外一个服务完成服务之间的交互,服务之间紧耦合;同步
EDA是一个组件订阅另外一个组件的事件消息,根据事件信息更新组件本身的状态,因此EDA架构,每一个组件都不会依赖其余的组件;
组件之间仅仅经过topic产生关联,耦合性很是低。
其余:DDD领域驱动设计、CQRS架构(命令/读写职责分开)、事件溯源(Event Sourcing,简称ES)、事件驱动架构(EDA)
摘自网络