La tormenta vs Tridente: Cuando no utilice el Tridente?


Estoy trabajando con Storm y está bien para muchos casos de uso. Recientemente eché un vistazo a Trident , que es una abstracción de alto nivel de Storm. Soporta procesamiento exactamente una vez y hace que el procesamiento con estado sea más fácil.

Pero ahora me pregunto.. ¿Por qué no puedo usar siempre Trident en lugar de Storm?

Lo que he leído hasta ahora:

  • Trident procesa los mensajes en lotes, por lo que el tiempo de procesamiento podría ser más largo.
  • Trident aún no es capaz para procesar bucles en topologías.

¿Hay otras desventajas al usar Trident en lugar de Storm? Porque en este momento, creo que las desventajas que enumeré anteriormente son marginales.

¿Qué casos de uso no se pueden implementar con Trident?


Consecuencias:

Desde que hice la pregunta mi compañía decidió ir por Trident primero. Solo usaremos pure Storm cuando haya problemas de rendimiento. Lamentablemente esta no fue una decisión activa. simplemente se convirtió en el comportamiento predeterminado (yo no estaba alrededor en ese momento).

Su suposición era que en la mayoría de los casos de uso necesitamos estado o procesamiento solo una vez o lo necesitaremos en un futuro cercano. Entiendo su razonamiento porque pasar de Storm a Trident o regresar no es una transformación fácil, pero en mi opinión personal el concepto de procesamiento de flujo sin estado no fue entendido por todos y esa fue la razón principal para usar Trident.

Author: Matthias J. Sax, 2013-03-20

5 answers

Para responder a tu pregunta: ¿cuándo no deberías usar Trident? Siempre que pueda darse el lujo de no hacerlo.

Trident añade complejidad a una topología de tormenta, reduce el rendimiento y genera estado. Hágase la pregunta: ¿necesita la semántica de procesamiento" exactamente una vez "de Trident o puede vivir con la semántica de procesamiento" al menos una vez " de Storm. Para exactamente una vez, utilice Trident, de lo contrario no.

También me gustaría destacar el hecho de que Storm garantiza que todos los mensajes será procesado. Algunos mensajes pueden procesarse más de una vez.

 41
Author: John Gilmore,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-18 13:40:53

Si su objetivo es la latencia más baja posible y no necesita procesar exactamente una vez, entonces usar Storm es mejor que Trident.

 19
Author: ChrisBlom,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-06-26 19:10:40

Trident es una abstracción de alto nivel para hacer computación en tiempo real sobre Twitter Storm, disponible en Storm 0.8.x. Storm es un framework de procesamiento de flujo sin estado y Trident proporciona procesamiento de flujo con estado.

 4
Author: Do Do,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-07-09 06:12:07

Chris, dado que estas dos son tecnologías de código abierto, trident sirve como una única implementación de un escenario en la parte superior de la tormenta, por supuesto, esto trajo una sobrecarga de rendimiento. Si el tridente no pudo cumplir con sus requisitos, cree su propia implementación estatal en la parte superior de la tormenta. Trident produjo proyectos de mayor nivel como Trident-ML a tiempo.

 1
Author: HakkiBuyukcengiz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-03-06 14:59:59

Supongamos que queremos hacer filtrado + adición de un campo a una tupla. si usamos tormenta generalmente usamos 2 bots para filtrar, además de campo. así que de nuevo tenemos que enviar la tupla a nuevo perno por puede estar utilizando la agrupación global. así que aquí el ancho de banda nw puede convertirse en cuello de botella.

Usando trident podemos usar do arriba en una sola máquina. así que no es necesario reagruparse en este caso. tal caso de uso además de "exactamente una vez" / "al este una vez"puede diferenciar qué usar, etc.

Tridente es tipo de agrupación agrupación lógica

 0
Author: atul gupta,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-29 08:59:01