Dans le développement des projets Internet, il est nécessaire d’interagir avec divers services, et les utilisateurs obtiennent des données du serveur, et la grande disponibilité des interfaces de service est particulièrement importante, notamment dans le commerce électronique et les systèmes de paiement, où la haute disponibilité mesure également la robustesse du système. Dans le cas des clusters, de nombreux services sont également difficiles à maintenir.
Examen du consul
Consul est un outil open source développé en langage Go lancé par HashiCorp, utilisé pour réaliser la découverte et la configuration des services de systèmes distribués, avec un cadre intégré d’enregistrement et de découverte de services, une mise en œuvre de protocole de cohérence de distribution, un contrôle de santé, un stockage clé/valeur et des solutions multi-centres de données, ce qui est relativement simple à utiliser.
Découverte du service consul
Comment utiliser la découverte du service Consul :
- Faites fonctionner un agent Consul en mode Client sur chaque ordinateur, qui est uniquement responsable de l’échange efficace des dernières informations d’enregistrement avec le Consul Cluster (ne participant pas à l’élection des chefs).
- Le service de service sur chaque ordinateur enregistre le nom du service et l’URL du service auprès de l’agent consul local
- Lorsqu’un programme déployé sur Computer1 doit appeler ServiceB, le programme ServiceA obtient directement l’adresse d’accès de ServiceB auprès de l’agent consul local via le nom du service, puis effectue directement une requête à l’URL de ServiceB.
Le code est le suivant :
Dans la classe Startup, appelez ceci :
Examen de santé
L’interface de vérification de santé n’a qu’à renvoyer un code de statut 200 au consul, et le code est le suivant :
Commencez le projet, inscrivez-vous au service
Le contrôleur peut définir une méthode de test comme suit :
Allons dans le répertoire bin du projet et lanceons-le via la ligne de commande, le code est le suivant :
Consultez le lien via votre navigateur :
http://127.0.0.1:8500/ui/dc1/services/test.itsvse
http://127.0.0.1:8500/v1/catalog/service/test.itsvse
Les données json sont les suivantes :
[ { « ID » : « bb644359-6b2a-a27e-7a0a-a1950b8e515f », « Node » : « BUREAU-EB7B69D », « Adresse » : « 127.0.0.1 », « Datacenter » : « dc1 », « AdressesTaguées » : { « lan » : « 127.0.0.1 », « Wan » : « 127.0.0.1 » }, « NodeMeta » : { « segment-réseau consul » : « » }, « ServiceKind » : « », « ServiceID » : « 507338bf-a5a6-4013-9675-c43a40a2c1a0 », « ServiceName » : « test.itsvse », « ServiceTags » : [ « test », « itsvse » ], « ServiceAddress » : « 127.0.0.1 », « ServiceWeights » : { « Passage » : 1, « Avertissement » : 1 }, « ServiceMeta » : {}, « ServicePort » : 8083, « ServiceEnableTagOverride » : faux, « ServiceProxy « : { « MeshGateway » : {}, « Exposer » : {} }, « ServiceConnect » : {}, « CreateIndex » : 1317, « ModifyIndex » : 1317 }, { « ID » : « bb644359-6b2a-a27e-7a0a-a1950b8e515f », « Node » : « BUREAU-EB7B69D », « Adresse » : « 127.0.0.1 », « Datacenter » : « dc1 », « AdressesTaguées » : { « lan » : « 127.0.0.1 », « Wan » : « 127.0.0.1 » }, « NodeMeta » : { « segment-réseau consul » : « » }, « ServiceKind » : « », « ServiceID » : « bb21f150-7219-4eda-bc91-54686a750228 », « ServiceName » : « test.itsvse », « ServiceTags » : [ « test », « itsvse » ], « ServiceAddress » : « 127.0.0.1 », « ServiceWeights » : { « Passage » : 1, « Avertissement » : 1 }, « ServiceMeta » : {}, « ServicePort » : 8082, « ServiceEnableTagOverride » : faux, « ServiceProxy « : { « MeshGateway » : {}, « Exposer » : {} }, « ServiceConnect » : {}, « CreateIndex » : 1314, « ModifyIndex » : 1314 }
]
Appel au service consul
Créez un nouveau projet console .NET Core avec le code suivant :
J’appelle au hasard le service test.itsvse enregistré et le résultat est le suivant :
Enfin, téléchargement du code source :
Touristes, si vous voulez voir le contenu caché de ce post, s’il vous plaît Répondre |