
eBay acaba de liberar bajo licencia Apache 2 Pulsar.
Sus creadores lo definen así:
Pulsar es un es plataforma para el procesamiento de streams y analítica en tiempo real. Pulsar puede usarse para recolectar y procesar eventos de usuario y de negocio en tiempo real y para generar métricas y agregaciones sobre ventanas temporales todo esto siguiendo un lenguaje SQL-like.
Pulsar escala a millones de eventos por segundo en alta disponibilidad, se integra fácilmente con strores como Cassandra.
(Vamos lo que de toda la vida se define como un CEP :D)
Pulsar fue creado con estos objetivos:
· Escalabilidad: escalando a millones de eventos por segundo
· Latencia: procesamiento y entrada en órdenes menores de segundo
· Disponibilidad: sin caída del cluster durante actualización del software, actualización de las reglas y cambios en la topología
· Felxibilidad: facilidad para definir y cambias la lógica de procesamiento, ruteado de eventos, topologís
· Productividad: soporte para CEP y un lenguaje 4GL para filtrado de datos, agregación y procesamiento stateful
· 99,9% Data Delivery
· Despliegue en Cloud: los nodos pueden distribuirse entre data centers
FLUJO:
El flujo de Pulsar consiste en varios estados no acoplados.
Los eventos se transportan de forma asíncrona entre el pipeline lo que simplifica la escalabilidad permitiendo que cada estado pueda construirse y operarse de forma independiente.
LENGUAJE DE CONSULTAS:
Al estilo de los CEPs más tradicionales Pulsar ofrece un lenguaje de consultas SQL-like:
DESPLIEGUE:
La lógica CEP de Pulsar se despliega en diversos nodos (CEP cells = celda CEP), cada celda CEP se configure con un canal de entrada, un canal de salida y una lógica de proceso.
Los eventos se particionan por una clave (usuario por ejemplo) de modo que todos los eventos con una misma clave se rutean a la misma celda CEP.
En cada estado los eventos pueden particionarse por una clave diferente permitiendo agregación en varias dimensiones:
Con esta arquitectura para escalar a más eventos simplemente tengo que meter más celdas CEP.
Pulsar CEP usa Apache ZooKeeper para detectar nuevas celdas y rebalancear el tráfico, de la misma forma si una celda se cae Pulsar reenruta el tráfico a otros nodos…
Pulsar CEP soporta varios modelos de mensajería entre estados, pudiendo elegir modelo Push o Pull. Pulsar permite persistir los eventos en Kafka para garantizar el procesado.
Opinión:
Pulsar CEP resulta una solución muy interesante en el ámbito “Real Time Big Data”, se me ocurren diversos escenarios de uso:
· los que hayáis usado Storm habréis echado en falta un lenguaje estilo SQL para procesar los streams (algunos hasta hemos integrado un CEP con Storm)
· los que necesitéis un CEP con licencia Apache (y no GPL como Esper) hasta ahora teníais poca elección: Siddhi CEP




Deja un comentario