Qual è la differenza tra i modelli editore-abbonato e reattore?


Risposte:


12

Come posso vedere dal link, il modello PubSub non è un modello OOP, ma piuttosto un modello di messaggistica , che è un modello architettonico di rete.

Il modello di reattore è qualcosa correlato alla gestione delle richieste dei server con loop di eventi a thread singolo . Ancora una volta, il link mostra alcuni buoni esempi come Node.js, Netty, Twisted, ecc.

Infine, Observer è il modello di progettazione OOP che descrive un modo di interazione tra oggetti nel codice OO.

Quindi quei tre modelli provengono da domini diversi.


6

Reactor = loop di eventi a thread singolo che riceve ed elabora le richieste. Tali richieste possono essere caricate in batch da un file, tramite SMTP e / o HTTP. Le risposte elaborate contemporaneamente vengono consegnate quando sono pronte anziché in sequenza.

Gli editori emettono. Gli abbonati consumano.

Editori + Iscritti = modello di osservatore (Heads First Design Patterns). Gli osservatori sparano in sequenza e di solito si bloccano fino al completamento.


2

PubSub è più legato alle code di messaggistica (MQ). Ha a che fare con il modo in cui i nodi ricevono messaggi asincroni in un sistema distribuito.

Il modello di reattore ha più a che fare con eventi asincroni. Ad esempio, le prese non bloccanti utilizzano lo schema del reattore per fornire eventi di rete: LEGGI, SCRIVI, CONNETTI, ACCETTA

È possibile controllare CoralReactor per avere una migliore comprensione del modello di reattore.

Disclaimer : sono uno degli sviluppatori di CoralReactor.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.