Reactor: Spring发布基于JVM的异步事件驱动框架

13-05-14 banq
                   

面对Vert.x 以及Erlang/Scala的Actor模型冲击,Spring今天最新宣布,推出基于事件驱动的异步应Reactor:

Reactor 是一个提供Java Groovy或其他JVM语言建立事件和数据驱动更容易的框架。它很快,可以每秒处理15,000,000以上事件,无堵塞non-blocking分发. 长任务运行无堵塞

项目:https://github.com/reactor/reactor.

Reactor 是受到著名的 Reactor设计模式(本站Reactor文章)影响,当然也受到EDA事件驱动实践的影响,Reactor目标是让EDA更加容易方便使用。

使用代码案例:

// Use a POJO as an event handler
class Service {
  public <T> void handleEvent(Event<T> ev) {
    // handle the event data
  }
}
 
@Inject
Service service;
 
// Use a method reference to create a Consumer<Event<T>>
reactor.on($("parse"), service::handleEvent);
 
// Notify consumers of the 'parse' topic that data is ready
// by passing a Supplier<Event<T>> in the form of a lambda
reactor.notify("parse", () -> {
  slurpNextEvent()
});

<p>

[该贴被admin于2013-05-14 10:52修改过]

                   

2
banq
2013-05-14 10:20

关于Reactor的评论:

/Heavy/Event/g Machine Gun 重机枪?

Reactor is an eventing system for big and fast data apps Reactor适合大且快速的数据应用。

Reactor的事件分发有多种选择:Promise vs Callback - Actor vs ThreadPool

结合websocket 每秒处理几百万事件。

lshoo
2013-05-14 15:49

Banq好快啊。才在SpringSource上看到,这里就有了,不知道和Vert.x相比如何。

不过才刚开始,真要用,估计需要2-3年才行。

[该贴被lshoo于2013-05-14 15:53修改过]

banq
2013-05-14 15:57

2013-05-14 15:49 "@lshoo

"的内容

不知道和Vert.x相比如何 ...

这里是最新第四回合各种语言框架包括Go语言 Scala等性能大比拼:

http://www.jdon.com/45396

基本上Netty Vert.x和原生Servlet胜出,在full stack中Spring还是最快的,估计Reactor和Vert.x差不多。

我认为直接采取NIO的tomcat 6/7提供的Servlet应该属于原生Servlet。这时一个Servlet线程应该相当于一个Event Handler。

[该贴被banq于2013-05-14 15:58修改过]

lshoo
2013-05-14 15:59

2013-05-14 15:57 "@banq

"的内容

基本上Netty Vert.x和原生Servlet胜出,在full stack中Spring还是最快的,估计Reactor和Vert.x差不多。 ...

Scalatra 性能不比Spring差,更简单,更方便。

2Go 1 2 下一页