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'
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);
}
} );
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