SpringSource anuncia Reactor
martes, mayo 14, 2013 at 9:09AM
Abraham

Últimamente los chicos de Spring no paran de anunciar nuevos productos (Spring XD y Spring for Apache Hadoop también han sido anunciados en lo que va de año). Ahora le ha tocado a Spring Reactor. Se trata de un framework para crear aplicaciones dirigidas por eventos que corren sobre la máquina virtual Java y que en la actualidad puede usarse desde Java o Groovy, aunque en principio no habría problema para usarlo desde otros lenguajes que corran en la máquina virtual en el futuro.

SpringSource afirma que Reactor empleando un servidor modesto puede llegar a procesar 15 millones de eventos por segundo empleando el esquema de gestión de eventos más rápido. Según ellos este proyecto puede emplearse para una gran variedad de aplicaciones que requieren tener procesar un alto volumen de eventos, ser altamente paralelas y procesar operaciones de entrada y salida de un modo no bloqueante. Aquellas aplicaciones que necesiten consumir grandes volúmenes de datos en tiempo real son especialmente adecuadas.

En el futuro, proyectos de SpringSource como Spring XD, Spring Integration ySpring Batch se apoyarán en Reactor. Aquí tenéis un ejemplo de código fuente en Java:

// This helper method is like jQuery’s.
// It creates a Selector instance so you don’t have
// to construct one using 'new Selector("parse")'
import static reactor.Fn.$;
 
Reactor reactor = R.create();
 
// Register interest in events published to key "parse"
reactor.on($("parse"), new Consumer>() {
  public void call(Event ev) {
    service.handleEvent(ev);
  }
});
 
// Send an event to this Reactor and trigger all actions
// that match the given Selector
reactor.notify("parse", Fn.event("Hello World!"));

Y aquí tenéis otro en Groovy:

// Assign a Closure as a Consumer
reactor.on($('hello')) { Event ev ->
  if(ev.headers['specialHeader']) { // Events can have metadata
    doSomethingWith(ev.data)
  }
}
 
// Use Groovy helpers for notify
reactor.notify for: 'hello', data: 'Hello World!', specialHeader: 'specialValue'
Article originally appeared on javaHispano (http://www.javahispano.org/).
See website for complete article licensing information.