Comprensione del meccanismo di individuazione dei servizi client

0

Sto cercando di capire come implementare il modello di individuazione dei servizi nella mia architettura. Comprendo che ogni istanza di un servizio deve registrarsi nel registro del servizio all'avvio e quindi aggiornare la registrazione ciascuno, ad esempio, 30 secondi.

Supponiamo di avere un purchases service che deve leggere alcuni dati da clients service . Entrambi sono servizi basati su REST.

Devo interrogare l'URL di clients service nel registro del servizio ogni volta che è necessario effettuare una richiesta contro di esso? Non ha conseguenze sulle prestazioni?

    
posta Héctor 22.04.2016 - 12:07
fonte

1 risposta

1

Doesn't it have performance consequences?

Sì, ma quanto? per esempio. quanto spesso stai interrogando il servizio (e il registro). E quanta interazione con il servizio sta succedendo. per esempio. stai interrogando il registro una volta e poi conducendo una complessa interazione con il servizio. Se il tuo servizio di registro è leggero (e non riesco a immaginare che non lo sarebbe), non mi preoccuperei troppo di questo.

Se diventa un problema, perché non implementare un meccanismo basato su eccezioni. per esempio. effettua una query sul registro una volta e poi usalo fino a quando non si verifica un errore, nel qual caso vai indietro al registro per trovare un nuovo servizio.

Esistono varie soluzioni a questo problema. Una possibile soluzione che non utilizza un registro è lasciare che ogni servizio trasmetta la propria posizione (via broadcast IP o multicast). Ogni cliente può ascoltarlo e gestire una serie di servizi noti (eliminando le voci quando scompaiono). Forse è più complesso da implementare, ma evita il single-point-of-failure che potresti introdurre con un unico registro.

    
risposta data 22.04.2016 - 12:14
fonte

Leggi altre domande sui tag