Qual è la differenza tra modelli di abbonato editore e reattore?

11

Pubblica-iscriviti e Reactor modelli molto simili a me. In che modo sono diversi?

In entrambi i modelli, un messaggio viene indirizzato indirettamente agli abbonati (listener nel pattern del reattore).

Ritengo che modello di osservatore sia molto simile anche ad altri due modelli.

Quali sono le differenze chiave tra questi modelli?

    
posta Mohsen 09.03.2013 - 21:33
fonte

3 risposte

10

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

Il pattern del reattore è qualcosa relativo alla gestione delle richieste dei server con il ciclo 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 questi tre pattern provengono da domini diversi.

    
risposta data 09.03.2013 - 22:06
fonte
5

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

Gli editori emettono. Gli abbonati consumano.

Publishers + Subscribers = Pattern Observer (Heads First Design Patterns). Gli osservatori sparano in sequenza e di solito bloccano fino al completamento.

    
risposta data 10.03.2013 - 13:26
fonte
1

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

Lo schema del reattore ha più a che fare con eventi asincroni. Ad esempio, i socket non bloccanti utilizzano il pattern del reattore per fornire eventi di rete: READ, WRITE, CONNECT, ACCEPT

Puoi controllare CoralReactor per avere una migliore comprensione del modello del reattore.

Disclaimer : sono uno degli sviluppatori di CoralReactor.

    
risposta data 02.05.2015 - 18:50
fonte

Leggi altre domande sui tag