Qualsiasi documento / modello di riferimento / implementazione della dipendenza / ordine degli eventi di imposizione nell'elaborazione distribuita?

2

Ad esempio, Process P sta ascoltando gli eventi E (A) ed E (B), ma per elaborare uno degli eventi, P ha bisogno anche dell'altro evento disponibile. Ingenuamente, quando P riceve uno degli eventi, controllerà se l'altro evento è già ricevuto. Se no, può aspettare. Ma

1) questo non suona molto efficiente, specialmente quando ogni processo ha molti diversi tipi di eventi da elaborare.

2) Anche se il numero di processi distribuiti aumenta a un numero elevato, gli eventi sono più aggrovigliati tra i processi, i processi muoiono / vengono riavviati, ecc. tutto ciò rende la gestione degli eventi più complicata.

Quindi vorrei sapere se esistono documenti / modelli / implementazioni di riferimento per la gestione degli eventi in un ambiente di elaborazione distribuito di questo tipo?

    
posta wei 06.02.2012 - 05:30
fonte

1 risposta

1

Puoi gestire questo coordinamento usando le tecniche di workflow / saga.

Il tuo processo definisce un flusso di lavoro (macchina a stati) che può essere avviato al ricevimento di E (A) o E (B).

Ad esempio: al ricevimento di E (A), il servizio Processo avvia un flusso di lavoro che inizia ad attendere un messaggio E (B) corrispondente. La successiva ricezione del messaggio E (B) riprenderà il flusso di lavoro originariamente avviato da E (A).

Tra l'inizio e la ripresa del flusso di lavoro, potresti considerare di archiviare il flusso di lavoro nella memoria persistente per sopravvivere alla cessazione del tuo servizio Process.

La documentazione su Sagas (flusso di lavoro) di NServiceBus spiega bene questo concetto.

    
risposta data 06.02.2012 - 13:21
fonte

Leggi altre domande sui tag