SOA/EDA

《SOA》

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

因为 SOA 经常和 Web Service 相提并论,认为这两者是等同的,其实不然。虽然两者有很多的关联,但它们是截然不同的两个概念,或者说考虑问题的角度不同。

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

【SOA 的局限性】

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

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

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

《EDA》

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

可以从两个方面来理解 EDA:

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

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

EDA是一个组件订阅另一个组件的事件消息,根据事件信息更新组件自己的状态,所以EDA架构,每个组件都不会依赖其他的组件;

组件之间仅仅通过topic产生关联,耦合性非常低。

摘自网络

猜你喜欢

转载自www.cnblogs.com/xdyin/p/10455426.html
SOA
今日推荐