Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 55716|Risposta: 3

[Fonte] 【Architettura】ASP.NET Core è altamente disponibile grazie ai servizi Consul

[Copiato link]
Pubblicato il 16-10-2020 18:33:07 | | | |
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.

[Architettura]. net/c# implementa la configurazione distribuita dello store Key/Value basata su Consul
https://www.itsvse.com/thread-9420-1-1.html

Architettura: ASP.NET Core configura dinamicamente gli aggiornamenti hot basati su Consul
https://www.itsvse.com/thread-9421-1-1.html


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 pregoRisposta




Precedente:Architettura: ASP.NET Core configura dinamicamente gli aggiornamenti hot basati su Consul
Prossimo:L'importazione file DMP è eccezionale
Pubblicato il 30-11-2020 19:57:38 |
w174w174w174
Pubblicato il 23-07-2021 09:31:37 |
Grazie per aver condiviso
Pubblicato il 2021-9-3 09:05:16 |
software, importare decine di migliaia di email, non fingere la morte, non bloccare!!
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com