关于spring 的Application event

13-05-24 32647908
                   

那天看到板桥 说 spring 终于有了 异步事件驱动的东西了. Reactor https://github.com/reactor/reactor

但有人说 使用 spring 的ApplicationEvent 也能实现事件驱动机制. (可能没异步.)

这里有个示例: http://blog.csdn.net/wgw335363240/article/details/7202320

各位老兄是怎么看的. (诚心求教. :) )

                   

1
banq
2013-05-24 17:45

2013-05-24 16:57 "@32647908

"的内容

也能实现事件驱动机制. (可能没异步.) ...

关键是异步和并发,这两个概念是事件含义的一个重要特征,也是区别于观察者模式等一个重要因素。

实际生活中,事件的触发是无序可控的,对事件的响应当然要做到异步或并发,不能处理事件时按照同步来,因为同步可能发生堵塞或锁等情况,只能等处理完一个事件再处理另外一个事件。

从客户端和服务器概念来看,客户端发出大量事件到服务器(通过ajax等调用),服务器处理不能说,我一个个来处理,你们等着,当然,如果服务器达到最大处理量可以让事件排队。

我们谈论的事件驱动更重要的含义是消息驱动,消息是信封,事件是信函而已。

实际上,将B/S之间的机制搬迁到技术架构和业务领域模型之间,如果说浏览器发出大量事件交由服务器处理,业务领域模型也可能发生大量事件需要技术架构响应,比如大量同时读写数据库等等。

这两者的机制应该是一样。

更准确地说,异步事件必须有Actor模型来实现。Spring缺少Actor模型,现在Reactor补充了。

[该贴被banq于2013-05-24 17:46修改过]

32647908
2013-05-25 11:31

非常感谢 板桥的回复.