Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 55716|Antwort: 3

[Quelle] 【Architektur】ASP.NET Core ist auf Basis von Consul-Diensten hoch verfügbar.

[Link kopieren]
Veröffentlicht am 16.10.2020, 18:33:07 | | | |
Bei der Entwicklung von Internetprojekten ist es notwendig, mit verschiedenen Diensten zu interagieren, und Nutzer beziehen Daten vom Server; die hohe Verfügbarkeit von Service-Schnittstellen ist besonders wichtig, insbesondere im E-Commerce- und Zahlungssystem, wo die hohe Verfügbarkeit auch misst, ob das System robust ist. Im Fall von Clustern sind viele Dienste auch schwer zu warten.

Konsulüberprüfung

Consul ist ein Open-Source-Tool, das in der Go-Sprache entwickelt wurde und von HashiCorp eingeführt wurde und zur Realisierung von Service-Discovery und -konfiguration verteilter Systeme verwendet wird, mit integriertem Service-Registrierungs- und Entdeckungsframework, Implementierung von Verteilungskonsistenzprotokollen, Gesundheitsprüfung, Schlüssel-/Wertspeicherung und Multi-Datacenter-Lösungen, die relativ einfach zu bedienen sind.

[Architektur]. net/c# implementiert eine verteilte Konfiguration des Key/Value-Speichers basierend auf Consul
https://www.itsvse.com/thread-9420-1-1.html

Architektur: ASP.NET Core konfiguriert dynamische Hot-Updates basierend auf Consul
https://www.itsvse.com/thread-9421-1-1.html


Entdeckung des Konsulatsdienstes

Wie man Consul Service Discovery verwendet:

  • Führen Sie auf jedem Computer einen Konsul-Agenten im Client-Modus aus, der nur für den effizienten Austausch der neuesten Registrierungsinformationen mit dem Konsul-Cluster verantwortlich ist (ohne an der Führungswahl teilzunehmen).
  • Der Dienstdienst auf jedem Computer registriert den Dienstnamen und die URL des Dienstes beim örtlichen Konsulagent
  • Wenn ein auf Computer1 installiertes Programm ServiceB aufrufen muss, erhält das Programm ServiceA direkt die Zugriffsadresse von ServiceB vom lokalen Konsulagent über den Servicenamen und stellt dann direkt eine Anfrage an die URL von ServiceB.




Der Code lautet wie folgt:



In der Startup-Klasse rufen Sie wie folgt auf:



Gesundheitsuntersuchung

Die Gesundheitskontroll-Schnittstelle muss nur einen 200-Statuscode an Consul zurückgeben, und der Code lautet wie folgt:



Starte das Projekt, melde dich für den Service an

Der Regler kann eine Testmethode wie folgt definieren:



Gehen wir zum bin-Verzeichnis des Projekts und starten es über die Kommandozeile, der Code ist wie folgt:





Sehen Sie sich den Link über Ihren Browser an:

http://127.0.0.1:8500/ui/dc1/services/test.itsvse



http://127.0.0.1:8500/v1/catalog/service/test.itsvse

Die JSON-Daten sind wie folgt:

[
    {
        "ID": "bb644359-6b2a-a27e-7a0a-a1950b8e515f",
        "Node": "DESKTOP-EB7B69D",
        "Adresse": "127.0.0.1",
        "Rechenzentrum": "dc1",
        "TaggedAddresses": {
            "lan": "127.0.0.1",
            "WAN": "127.0.0.1"
        },
        "NodeMeta": {
            "Konsul-Netzwerk-Segment": ""
        },
        "ServiceKind": "",
        "ServiceID": "507338bf-a5a6-4013-9675-c43a40a2c1a0",
        "ServiceName": "test.itsvse",
        "ServiceTags": [
            "Test",
            "Itsvse"
        ],
        "ServiceAdresse": "127.0.0.1",
        "ServiceWeights": {
            "Passing": 1,
            "Warnung": 1
        },
        "ServiceMeta": {},
        "ServicePort": 8083,
        "ServiceEnableTagOverride": falsch,
        "ServiceProxy": {
            "MeshGateway": {},
            "Enthüllung": {}
        },
        "ServiceConnect": {},
        "CreateIndex": 1317,
        "ModifyIndex": 1317
    },
    {
        "ID": "bb644359-6b2a-a27e-7a0a-a1950b8e515f",
        "Node": "DESKTOP-EB7B69D",
        "Adresse": "127.0.0.1",
        "Rechenzentrum": "dc1",
        "TaggedAddresses": {
            "lan": "127.0.0.1",
            "WAN": "127.0.0.1"
        },
        "NodeMeta": {
            "Konsul-Netzwerk-Segment": ""
        },
        "ServiceKind": "",
        "ServiceID": "bb21f150-7219-4eda-bc91-54686a750228",
        "ServiceName": "test.itsvse",
        "ServiceTags": [
            "Test",
            "Itsvse"
        ],
        "ServiceAdresse": "127.0.0.1",
        "ServiceWeights": {
            "Passing": 1,
            "Warnung": 1
        },
        "ServiceMeta": {},
        "ServicePort": 8082,
        "ServiceEnableTagOverride": falsch,
        "ServiceProxy": {
            "MeshGateway": {},
            "Enthüllung": {}
        },
        "ServiceConnect": {},
        "CreateIndex": 1314,
        "ModifyIndex": 1314
    }
]


Konsul-Serviceruf

Erstellen Sie ein neues .NET Core-Konsolenprojekt mit folgendem Code:



Ich rufe zufällig den registrierten Test.itsvse-Dienst an und das Ergebnis ist wie folgt:



Abschließend, Quellcode-Download:

Touristen, wenn ihr den versteckten Inhalt dieses Beitrags sehen wollt, bitteAntwort




Vorhergehend:Architektur: ASP.NET Core konfiguriert dynamische Hot-Updates basierend auf Consul
Nächster:DMP-Dateiimport ist außergewöhnlich
Veröffentlicht am 30.11.2020, 19:57:38 |
w174w174w174
Veröffentlicht am 23.7.2021, 09:31:37 |
Danke fürs Teilen
Veröffentlicht am 03.9.2021 09:05:16 |
Software, zehntausende E-Mails importieren, keinen Tod vortäuschen, nicht einfrieren!!
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com