Buscar
Social
Ofertas laborales ES
« Seminario: Git vs. Subversion: ¿cuándo utilizar uno u otro? | Main | Griffon 1.3.0 »
martes
may142013

SpringSource anuncia Reactor

Ú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'

PrintView Printer Friendly Version

EmailEmail Article to Friend

Reader Comments (2)

Joder, debo estar muy oxidado en Java y la verdad es que no lo he probado en el IDE, pero ¿de verdad que esto es Java legal?

reactor.on($("parse"), new Consumer>()
{
public void call(Event ev)
{
service.handleEvent(ev);
}
} );

mayo 17, 2013 | Registered Commenterpeyrona

peyrona

recuerda que los nombres de los metodos y variables pueden tener $ y tambien _

como ejemplo


void metodo_Con$Dolar(){
}


y en la parte de "Consumer>" eso si esta mal si lees codigo del internet te daras cuenta que eso pasa todo el tiempo

cuando quieres usar código con generics es comun que desaparezcan algunas parte del generic (los sinbolos ´<´ o '>') supongo que lo hacen para evitar injecion de codigo

mayo 19, 2013 | Unregistered Commenterluis

PostPost a New Comment

Enter your information below to add a new comment.

My response is on my own website »
Author Email (optional):
Author URL (optional):
Post:
 
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>