Porterò la mia risposta rispondendo ad alcuni dei suggerimenti che hai preso in considerazione e quando è opportuno estrarli dalla cintura degli attrezzi.
SQL Server Service Broker ed Enterprise Service Integration (broker)
Questa non è una soluzione per garantire Disponibilità elevata né è una soluzione per SPOF .
Allo stesso modo Enterprise Service Integration come strumento di progettazione del sistema non fornisce garanzie o vantaggi a favore di Attributi di qualità che risolvono ridondanza, disponibilità, scalabilità, prestazioni e affidabilità. Nell'integrazione del servizio Enterprise ci sono due modelli principali, la fonte citata da articolo di Wikipedia sull'integrazione delle applicazioni aziendali :
Mediation (intra-communication)
Here, the EAI system acts as the go-between or broker between multiple applications. Whenever an interesting event occurs in an
application (for instance, new information is created or a new
transaction completed) an integration module in the EAI system is
notified. The module then propagates the changes to other relevant
applications.
Federation (inter-communication)
In this case, the EAI system acts as the overarching facade across multiple applications. All event calls from the 'outside world' to any
of the applications are front-ended by the EAI system. The EAI system
is configured to expose only the relevant information and interfaces
of the underlying applications to the outside world, and performs all
interactions with the underlying applications on behalf of the
requester.
Un processo broker viene utilizzato nel modello di mediazione per ricevere messaggi da varie applicazioni e quindi facoltativamente eseguire la trasformazione di quel messaggio per uno o più target. Il modello di federazione è simile ma agisce invece come una facciata di servizio per un'applicazione in modo che le applicazioni abbiano un'interfaccia comune e incapsulata che protegge dalle modifiche nell'applicazione di destinazione. Entrambi questi pattern riguardano gli attributi di qualità come Interoperabilità e Riusabilità, ma anche in questo caso non si affrontano gli attributi di qualità comunemente associati a High Availability e SPOF.
Coda messaggi
Per quanto riguarda Message Queue, questo è meno di un pattern in System Design e più di una tecnologia che si userebbe per garantire il 100% di consegna dei messaggi tra le applicazioni su un canale aysnchronous (al contrario dei servizi Web HTTP che sono sincroni, Modello richiesta-risposta).
Load Balancing
Quello che stai cercando è una soluzione che utilizza Load Balancing . Essenzialmente si tratta di un endpoint altamente disponibile per una risorsa di rete, che richiederà richieste, utilizza alcuni algoritmi per determinare l'endpoint o il server da inviare e quindi invia proxy di un certo numero di endpoint per conto del client trasferendo la richiesta a un endpoint appropriato . Questo ha un certo numero di vantaggi. Il primo è che un singolo URI di rete può essere utilizzato da più client dove non è necessario essere a conoscenza di quale server alla fine servirà la loro richiesta. Il secondo è che questo dà un livello di sicurezza al punto in cui i server attuali possono essere rimossi dalla visibilità. In terzo luogo, ciò consente una scalabilità senza soluzione di continuità in cui è possibile aggiungere server aggiuntivi per soddisfare il carico e allo stesso modo i server possono cadere senza che l'applicazione sia disponibile.
Ci sono molti modelli e forme che questo può assumere in termini di tecnologia. Se stai sviluppando un'applicazione per l'hosting interno in azienda, spesso ci sarebbe un dispositivo per data center (ad esempio F5) che può essere configurato per aiutarti a raggiungere questo obiettivo. Se si ospita un'applicazione nel cloud, in Microsoft Azure è incorporato Load Balancing come funzionalità che è possibile utilizzare per distribuire il carico su più VM.