微服务

事件驱动架构

2018-08-06  本文已影响40人  魔镜的技术心经

定义

Event-driven architecture (EDA), is a software architecture pattern promoting the production, detection, consumption of, and reaction to events.

简单来说,事件驱动架构就是基于事件进行通信的软件架构,它具有以下的特点:

Orchestration vs Choreography

我们在聊事件驱动架构时,先了解下Orchestration 和 Choreography的区别:

在上一篇文章里面已经介绍了,由于HTTP的同步特性(https://www.jianshu.com/p/a2c6126262d6),在很多场景下,Blocking式的http调用其实并不适用,因此为了提高系统性能,缩短总体响应时间(e.g后端多个服务编排的时间过长),提高系统的整体可用性(e.g: 下游downstream服务不稳定,导致的可用性问题),越来越多的系统都采用了Event Driven Architecture的方式进行服务的集成。

在Event-Based的系统里,服务的集成是通过Choreography的方式,而不是Orchestration的方式来实现的,举个列子如下图:


Orchestration (1).png
Choreography.png
上一篇下一篇

猜你喜欢

热点阅读