读书笔记-事件驱动架构

来源:互联网 发布:网络黑侠 封笔了吗 编辑:程序博客网 时间:2024/05/08 01:02

事件驱动架构模式是一种主流的异步分发事件架构模式,常用于设计高度可拓展的应用。它有很高的适应性 使得它在小型应用、大型应用、复杂应用中都表现的很好。

事件驱动架构模式由高度解耦、单一目的的事件处理组件构成,这些组件负责异步接受和处理事件。

事件驱动架构模式包含两种主要的拓扑结构:中介拓扑结构mediator、代理拓扑结构broker 

中介拓扑结构四种组件

   ・事件队列 event queue
           事件队列可以是消息队列、web服务端或者其它类似的东西
   ・事件中介
           负责分配、协调初始事件中的各个待执行步骤。事件中介只是知道初始事件中哪些步骤需要被处理,没有真正参与到对初始事件必须处理的业务逻辑的实现之中。
   ・事件通道
   ・事件处理器
           事件处理器组件中包含了应用的业务逻辑,事件处理器作为事件驱动架构中的组件,不依赖于其他组件,独立运作,高度解耦,在应用或系统中完成特定的任务。每一个事            件处理器组件都只完成一项唯一的业务工作,并且事件处理器在完成其特定的业务工作时不能依赖其他事件处理器。
   
       当事件流需要被处理,客户端将一个事件发送到某个事件队列中,由消息队列将其运输给事件中介进行处理和并发。事件中介接收到该消息后,并通过将额外的异步事件发送给事件通道,让事件通道执行该异步事件中的每一步骤,使得事件中介能够对事件处理进行分配、协调。同时,又因为事件处理器是事件通道的监听器,所以事件通道对异步事件的处理会触发事件处理器的监听事件,使事件处理器能够接受来自事件中介的事件,执行事件中具体的业务逻辑,从而完成对传入事件的处理。

在事件驱动架构模式中主要有两种事件

   ・初始事件
         是中介所接收到的最原始的事件,没有经过其他组件的处理
   ・待处理事件
          是由事件中介生成,由事件处理器接收的组件,不能把待处理事件看作成初始事件经过处理得到的事件。

代理拓扑结构与中介拓扑结构的不同之处在于:代理拓扑结构中没有核心的事件中介;

事件流在代理拓扑结构中通过一个轻量的消息代理将消息串联成链状,分发至事件处理器组件中进行处理。
代理拓扑结构使用场景大致上具有一下特点:事件处理流相对来说比较简单,不需要使用事件分配调节机制来提高处理事件的效率。
代理拓扑结构主要包括两种组件:代理、事件处理器

优点

   ・ 整体灵活性高
          事件处理器之间高度解耦,扩展性好
   ・易于部署高
          事件处理器可以独立地发布和加载
   ・性能高
          高度解耦,异步并行操作大大减少了传递消息过程中带来的事件开销
   ・适用性广,各种类型的项目都可以使用

缺点

   ・可测试性低
            如果我们要进行单元测试,就需要某种特定的测试客户端或者是测试工具产生的事件,为单元测试提供的初始值。
   ・开发相对复杂
           由于使用事件驱动架构进行开发需要考虑异步处理机制、协议创建流程,并且开发者需要用代码为事件处理器和操作失败的代理提供优秀的错误控制环境。

   
0 0
原创粉丝点击