Nello sviluppo di progetti Internet, è necessario interagire con vari servizi, e gli utenti ottengono dati dal server, e l'alta disponibilità delle interfacce di servizio è particolarmente importante, soprattutto nell'e-commerce e nei sistemi di pagamento, dove l'alta disponibilità misura anche la robustezza del sistema. Nel caso dei cluster, molti servizi sono anche difficili da mantenere.
Revisione del console
Consul è uno strumento open-source sviluppato nel linguaggio Go lanciato da HashiCorp, utilizzato per realizzare la scoperta e la configurazione dei servizi di sistemi distribuiti, con framework integrato per la registrazione e la scoperta dei servizi, implementazione del protocollo di coerenza della distribuzione, controllo dello stato, archiviazione chiavi/valore e soluzioni multi-data center, relativamente semplici da usare.
Scoperta del servizio consolare
Come utilizzare la Consul Service Discovery:
- Esegui un agente Consul in modalità Client su ciascun computer, responsabile solo dello scambio efficiente delle ultime informazioni di registrazione con il Consul Cluster (non partecipando all'elezione dei leader).
- Il servizio di servizio su ogni computer registra il nome del servizio e l'URL del servizio presso l'agente console locale
- Quando un programma distribuito su Computer1 deve chiamare ServiceB, il programma ServiceA ottiene direttamente l'indirizzo di accesso di ServiceB dall'Agente Consul locale tramite il nome del servizio, e poi effettua direttamente una richiesta all'URL di ServiceB.
Il codice è il seguente:
Nella classe Startup, chiama come segue:
Controllo sanitario
L'interfaccia del controllo della salute deve solo restituire un codice di stato 200 al consul, e il codice è il seguente:
Inizia il progetto, iscriviti al servizio
Il controllore può definire un metodo di prova come segue:
Andiamo nella directory bin del progetto e avviiamolo tramite la riga di comando, il codice è il seguente:
Visualizza il link tramite il tuo browser:
http://127.0.0.1:8500/ui/dc1/services/test.itsvse
http://127.0.0.1:8500/v1/catalog/service/test.itsvse
I dati json sono i seguenti:
[ { "ID": "bb644359-6b2a-a27e-7a0a-a1950b8e515f", "Nodo": "DESKTOP-EB7B69D", "Indirizzo": "127.0.0.1", "Datacenter": "dc1", "TaggedAddresses": { "lan": "127.0.0.1", "wan": "127.0.0.1" }, "NodeMeta": { "Segmento-rete-console": "" }, "ServiceKind": "", "ServiceID": "507338bf-a5a6-4013-9675-c43a40a2c1a0", "ServiceName": "test.itsvse", "ServiceTags": [ "Test", "itsvse" ], "IndirizzoServizio": "127.0.0.1", "ServiceWeights": { "Passaggio": 1, "Attenzione": 1 }, "ServiceMeta": {}, "ServicePort": 8083, "ServiceEnableTagOverride": falso, "ServiceProx": { "MeshGateway": {}, "Denuncia": {} }, "ServiceConnect": {}, "CreateIndex": 1317, "ModifyIndex": 1317 }, { "ID": "bb644359-6b2a-a27e-7a0a-a1950b8e515f", "Nodo": "DESKTOP-EB7B69D", "Indirizzo": "127.0.0.1", "Datacenter": "dc1", "TaggedAddresses": { "lan": "127.0.0.1", "wan": "127.0.0.1" }, "NodeMeta": { "Segmento-rete-console": "" }, "ServiceKind": "", "ServiceID": "bb21f150-7219-4eda-bc91-54686a750228", "ServiceName": "test.itsvse", "ServiceTags": [ "Test", "itsvse" ], "IndirizzoServizio": "127.0.0.1", "ServiceWeights": { "Passaggio": 1, "Attenzione": 1 }, "ServiceMeta": {}, "ServicePort": 8082, "ServiceEnableTagOverride": falso, "ServiceProx": { "MeshGateway": {}, "Denuncia": {} }, "ServiceConnect": {}, "CreateIndex": 1314, "ModifyIndex": 1314 }
]
Chiamata al servizio consolare
Crea un nuovo progetto console .NET Core con il seguente codice:
Sto chiamando casualmente il servizio test.itsvse registrato e il risultato è il seguente:
Infine, download del codice sorgente:
Turisti, se volete vedere il contenuto nascosto di questo post, vi prego Risposta |