EDA: Event-Driven Architecture事件驱动架构

2009-09-24 17:28
5
 异步编程      软件架构      EDA事件驱动     
 

SOA的核心是:暴露然后处理 expose and handle,SOA使事件Event跨系统流动

EDA是以事件为核心:什么时候触发 然后做什么。EDA是更加松散耦合,有极强的巨大事务处理能力

ESP—Event Stream Processing:监视事件数据流,分析这些事件。
CEP—Complex Event Processing:以更加动态方式监测。

Esper是一个ESP/CEP容器或框架,实际就是一个JAR包,能整入大部分系统。

Esper的特点就是:你可以对事件进行监测,比如你设定告诉Esper,发送的事件中某个参数不能低于某值,这样,当有各种事件通过Esper发送时,Esper就会帮助你监视,如果有低于某值的,就会自动激活相应的行为,这实际类似一个大的观察者模式。

事件和消息有一些区别和联系,事件和消息可以说是从不同方面描述的同一个东西,消息是事件发生后产物,消息发送必须有发送事件发生才能实现。每次事件只发送一次消息,事件和消息是一对一的,EDA架构和JMS/ESB消息架构有一些区别,JMS/ESB只是发送简单的消息,并不处理事件流,也就是消息流,JMS/ESB只要指定发送目的地,就直接将事件消息发送那个目的,类似一个树形结构中两个节点的关系,JMS/ESB的消息机制可以组成一个业务处理网,事件在这些业务子系统之间流动,但是不对流动的消息内容进行监测。

如果发送的事件消息中某个参数低于某值,那么只有等到目的地的校验时才会报错,而Esper象事件消息拦截器可以进行动态拦截并且激活相应行为。

Esper可以和wso2 mule等SOA消息中间件融合在一起应用,相同于多了一个消息总线的监视器,在消息总线流程之外,
可以动态增加新的业务流程。
http://www.slideshare.net/prabathsiriwardena/complex-event-processing-with-esper-and-wso2-esb

Flash作为应用广泛的富客户端RIA,有一个消息中间件Blazds,通过Blazds,可以将客户端事件和服务器端联系起来,可以由服务器端将消息事件推送到客户端,也可以由客户端发送事件给服务器端,完成一个跨服务器和客户端的事件驱动架构,更好地实现各种信息内容的推和拉机制。
CEP and RIAs: Bringing Together the Bold and the Beautiful

在这个模式中引入CEP/Esper,可以实时拦截客户端发送的事件消息,可以实现媒体播放过程中激活各种其他交互动作,真正实现交互互动媒体。

 
 
 
   
 异步编程(98)     软件架构(224)     EDA事件驱动(104)    
 
 

12306铁路售票系统核心开源中间件Geode介绍

Geode是一个提供实时且高一致性的 分布式 数据管理平台,典型案例是中国铁路12306售票系统使用Geode管理10个集群节点,在内存中管理2T的热点数据....

EDA: Event-Driven Architecture事件驱动架构的更多相关文章

  1. Event Driven Architecture

    在微服务中使用领域事件   稍微回想一下计算机硬件的工作原理我们便不难发现,整个计算机的工作过程其实就是一个对事件的处理过程.当你点击鼠标.敲击键盘或者插上U盘时,计算机便以中断的形式处理各种外部事件 ...

  2. 后端开发实践系列之三——事件驱动架构(EDA)编码实践

    在本系列的前两篇文章中,笔者分别讲到了后端项目的代码模板和DDD编码实践,在本文中,我将继续以编码实践的方式分享如何落地事件驱动架构. 单纯地讲事件驱动架构(Event Driven Architec ...

  3. 事件驱动架构 (Event-Driven Architecture,EDA) 简介

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

  4. IDDD 实现领域驱动设计-CQRS(命令查询职责分离)和 EDA(事件驱动架构)

    上一篇:<IDDD 实现领域驱动设计-SOA.REST 和六边形架构> 阅读目录: CQRS-命令查询职责分离 EDA-事件驱动架构 Domin Event-领域事件 Long-Runni ...

  5. ENode 1.0 - 事件驱动架构(EDA)思想的在框架中如何体现

    开源地址:https://github.com/tangxuehua/enode 上一篇文章,我给大家分享了我的一个基于DDD以及EDA架构的框架enode,但是只是介绍了一个大概.接下来我准备用很多 ...

  6. CQRS(命令查询职责分离)和 EDA(事件驱动架构)

    转载CQRS(命令查询职责分离)和 EDA(事件驱动架构) 上一篇:<IDDD 实现领域驱动设计-SOA.REST 和六边形架构> 阅读目录: CQRS-命令查询职责分离 EDA-事件驱动 ...

  7. enode框架step by step之事件驱动架构(EDA)思想的在框架中如何体现

    enode框架step by step之事件驱动架构(EDA)思想的在框架中如何体现 上一篇文章,我给大家分享了我的一个基于DDD以及EDA架构的框架enode,但是只是介绍了一个大概.接下来我准备用 ...

  8. 中央事件总线 事件驱动架构(EDA) 解析事件总线的4种实现方式

    事件驱动架构(EDA)https://mp.weixin.qq.com/s/nA8XFD2Rx_7qA_LxltGGHw https://mp.weixin.qq.com/s/cD3auglgKzOb ...

  9. event driven model

    http://www.jdon.com/eda.html http://blog.csdn.net/gykimo/article/details/9182287 事件代表过去发生的事件,事件既是技术架 ...

随机推荐

  1. linux内核数据包转发流程(二):中断

    [版权声明:转载请保留出处:blog.csdn.net/gentleliu.邮箱:shallnew*163.com] 内核在处理2层数据包之前,必须先处理中断系统.设立中断系统,才有可能每秒处理成千的 ...

  2. could not load inserted library: /usr/lib/libgmalloc.dylib

    本人也刚开始学习iphone开发,最近维护一个程序时,不知道怎么弄的,不能build到真机了,到模拟器没有什么问题,出现的错误是 :---->>>could not load ins ...

  3. DotNetty 学习

    [转载]http://www.cnblogs.com/littlegod/p/7699482.html DotNetty的学习是带着如下这些问题展开: 1. Socket基础框架方案: 通信模式:异步 ...

  4. List与Array之间互换

    1 数组转换为List 调用Arrays类的静态方法asList. asList public static <T> List<T> asList(T... a) Return ...

  5. Mac环境下配置Tomcat+Eclipse

    下载Tomcat 首先在 Tomcat官方网站 找到自己合适的版本,下载 tar.gz 版本的,下载完成后解压缩到一个目录,进入这个目录下的 bin 执行 startup.sh,如果看到下面的界面,表 ...

  6. django 如何重写 HttpResponseRedirect 的响应状态码 302?

    fetch无法获取302响应的header信息: 浏览器对于302状态重定向,是直接进行重定向. 且js的fetch请求无法获取(catch也好.then也罢)到302响应的header信息,自然也无 ...

  7. asp.net为什么会产生app_offline.htm 这个文件,为什么删除后运行浏览器就不会报应用程序脱机

    一般是发布的时候自动生成的.VS2008在发布程序的时候,会首先在网站目录中生成这个文件,并把该虚拟目录的首页设成这个文件. 这样你在发布程序的时候如果有人访问网站就会看到这个页面. 不影响发布.ap ...

  8. ARouter 路由 组件 跳转 MD

    目录 简介 支持的功能 典型应用 简单使用 进阶使用 更多功能 其他 Q&A Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs bai ...

  9. js 处理URL实用技巧

    escape().encodeURI().encodeURIComponent()三种方法都能对一些影响URL完整性的特殊字符进行过滤.     但后两者是将字符串转换为UTF-8的方式来传输,解决了 ...

  10. windows下mysql忘记root密码的解决办法

    今天早上 一朋友说自己的mysql 忘记root密码了 让我帮忙给看看,因为没有接触过mysql 所以从网上找了一下信息经我亲身实践  已经成功!mysql版本是5.1以下是从网上找的信息: 1. 首 ...