¿Cuál es la diferencia entre los patrones editor-suscriptor y reactor?

Respuestas:

12

Como puedo ver en el enlace, el patrón PubSub no es un patrón OOP, sino un patrón de mensajería , que es un patrón arquitectónico de red.

El patrón del reactor es algo relacionado con el manejo de solicitudes de los servidores con un bucle de eventos de subproceso único . Nuevamente, el enlace muestra algunos buenos ejemplos como Node.js, Netty, Twisted, etc.

Finalmente, Observer es un patrón de diseño OOP que describe una forma de interacción entre objetos en el código OO.

Entonces esos tres patrones son de diferentes dominios.

scriptin
fuente
6

Reactor = bucle de evento de subproceso único que recibe y procesa solicitudes. Esas solicitudes podrían cargarse en lotes desde un archivo, a través de SMTP y / o HTTP. Las respuestas procesadas simultáneamente se entregan cuando están listas en lugar de secuencialmente.

Los editores emiten. Los suscriptores consumen.

Editores + Suscriptores = Patrón de observador (Jefes de patrones de diseño primero). Los observadores disparan secuencialmente y generalmente bloquean hasta que se completan.

Gerry King
fuente
2

PubSub está más relacionado con las colas de mensajería (MQ). Tiene que ver con cómo los nodos reciben mensajes asincrónicos en un sistema distribuido.

El patrón del reactor tiene más que ver con eventos asincrónicos. Por ejemplo, los enchufes sin bloqueo utilizan el patrón del reactor para entregar eventos de red: LEER, ESCRIBIR, CONECTAR, ACEPTAR

Puede consultar CoralReactor para comprender mejor el patrón del reactor.

Descargo de responsabilidad : soy uno de los desarrolladores de CoralReactor.

rdalmeida
fuente