SpringSource anuncia Reactor 1.0 GA
jueves, noviembre 14, 2013 at 7:24AM
Abraham

Spring anunciado la primera versión estable (GA) de Spring Reactor (a mi no me funciona este enlace, que es el enlace a la página oficial de Spring, pero creo que es porque es un dominio .io y debe haber algún problema en la configuración de mi red; aquí tenéis un enlace a IfoQ hablando sobre 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 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 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.

Aquí tenéis un ejemplo de uso de Reactor desde 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.