SOA/EDA

《SOA》

面向服务架构(Service-Oriented Architecture)是一种 IT 架构策略。SOA 已经逐渐地成为业界的标准。网络

由于 SOA 常常和 Web Service 相提并论,认为这二者是等同的,其实否则。虽然二者有不少的关联,但它们是大相径庭的两个概念,或者说考虑问题的角度不一样。架构

虽然 SOA 最初的流行离不开 Web Service 的贡献,但现在 SOA 早已超越了 Web Service 的范畴,变成一个独立的设计理念。异步

【SOA 的局限性】spa

SOA 主要从系统解构的角度入手,它侧重于将整个应用分解为一系列独立的服务,并指定各类标准和基础设施来使得这些服务易于重用,可以很容易地被各类平台上的应用来使用。可是在服务实际业务时出现了一些问题,由于 SOA 更多地是关注静态的信息,因此不能很好地与动态业务匹配。好比 SOA 不能很好地回答相似下面的一些问题:线程

好比在一个证券公司,有很完善的交易系统、后台系统、帐务系统和头寸管理系统等,当一个客户的下单在交易所执行后,全部的这些系统都应该获得通知,并作出相应的处理。这里面其实包含了几个问题:谁来负责触发这样一个事件,各个系统如何获得通知?如何保证各个系统行动的一致性? SOA 架构因为其关注点的限制,并不能很好地解决上述问题,而这些问题每每又是实际系统很是须要的特性。所以,EDA 与 SOA 的集成引发了人们的注意。设计

经过引入面向事件的机制,使得系统具有了感知和快速响应业务事件的能力。其实无论是 SOA 仍是 EDA 都不是什么新技术,无非是在一些旧的概念上添加了一些新元素。事件

《EDA》

事件驱动架构(Event-Driven Architecture)ci

能够从两个方面来理解 EDA:路由

    1. EDA 是一种侧重于以生成/消费为基础的异步通讯的架构模式。这主要对照于传统的基于线程的同步系统。
    2. EDA 是一种以事件 (event)为核心,提供事件产生,路由,消费已经结果回调等机制的架构模式。

 

SOA是一个服务调用另外一个服务完成服务之间的交互,服务之间紧耦合;同步

EDA是一个组件订阅另外一个组件的事件消息,根据事件信息更新组件本身的状态,因此EDA架构,每一个组件都不会依赖其余的组件;

组件之间仅仅经过topic产生关联,耦合性很是低。

 

其余:DDD领域驱动设计、CQRS架构(命令/读写职责分开)、事件溯源(Event Sourcing,简称ES)、事件驱动架构(EDA)

摘自网络

相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息