Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 55716|Respuesta: 3

[Fuente] 【Arquitectura】ASP.NET Core está altamente disponible gracias a los servicios de Consul

[Copiar enlace]
Publicado el 16-10-2020 18:33:07 | | | |
En el desarrollo de proyectos de Internet, es necesario interactuar con diversos servicios, y los usuarios obtienen datos del servidor, y la alta disponibilidad de interfaces de servicio es especialmente importante, especialmente en el comercio electrónico y los sistemas de pago, donde la alta disponibilidad también mide si el sistema es robusto. En el caso de los clústeres, muchos servicios también son difíciles de mantener.

Revisión del cónsul

Consul es una herramienta de código abierto desarrollada en lenguaje Go lanzada por HashiCorp, que se utiliza para realizar el descubrimiento y configuración de servicios de sistemas distribuidos, con marco integrado de registro y descubrimiento de servicios, implementación de protocolos de consistencia de distribución, comprobación de estado, almacenamiento de claves/valor y soluciones multi-centro de datos, lo cual es relativamente sencillo de usar.

[Arquitectura]. net/c# implementa la configuración distribuida del almacén de claves/valores basada en Consul
https://www.itsvse.com/thread-9420-1-1.html

Arquitectura: ASP.NET Core configura dinámicamente las actualizaciones en caliente basadas en Consul
https://www.itsvse.com/thread-9421-1-1.html


Descubrimiento del servicio consulal

Cómo utilizar el Descubrimiento de Servicios Consul:

  • Ejecuta un agente Consul en modo Cliente en cada ordenador, que solo sea responsable de intercambiar eficientemente la información de registro más reciente con el Clúster Consul (no participando en la elección de líderes).
  • El servicio de servicio en cada ordenador registra el nombre del servicio y la URL del servicio con el agente consulado local
  • Cuando un programa desplegado en Computadora1 necesita llamar a ServiceB, el programa ServiceA obtiene directamente la dirección de acceso de ServiceB del Agente Consul local a través del nombre del servicio, y luego realiza una solicitud directa a la URL de ServiceB.




El código es el siguiente:



En la clase de Startup, llama a la siguiente:



Chequeo médico

La interfaz de comprobación de salud solo necesita devolver un código de estado 200 al consul, y el código es el siguiente:



Empieza el proyecto, apúntate al servicio

El controlador puede definir un método de prueba de la siguiente manera:



Vamos al directorio bin del proyecto y comenzamos desde la línea de comandos, el código es el siguiente:





Consulta el enlace desde tu navegador:

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



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

Los datos json son los siguientes:

[
    {
        "ID": "bb644359-6b2a-a27e-7a0a-a1950b8e515f",
        "Nodo": "ESCRITORIO-EB7B69D",
        "Dirección": "127.0.0.1",
        "Centro de datos": "dc1",
        "EtiquetadosDirecciones": {
            "lan": "127.0.0.1",
            "Wan": "127.0.0.1"
        },
        "NodeMeta": {
            "segmento-red-cónsul": ""
        },
        "ServiceKind": "",
        "ServiceID": "507338bf-a5a6-4013-9675-c43a40a2c1a0",
        "ServiceName": "test.itsvse",
        "ServiceTags": [
            "prueba",
            "itsvse"
        ],
        "Dirección de servicio": "127.0.0.1",
        "PesosDeservicio": {
            "Pasando": 1,
            "Advertencia": 1
        },
        "ServiceMeta": {},
        "ServicePort": 8083,
        "ServiceEnableTagOverride": falso,
        "ServiceProoxy": {
            "MeshGateway": {},
            "Exponer": {}
        },
        "ServiceConnect": {},
        "CreateIndex": 1317,
        "ModifyIndex": 1317
    },
    {
        "ID": "bb644359-6b2a-a27e-7a0a-a1950b8e515f",
        "Nodo": "ESCRITORIO-EB7B69D",
        "Dirección": "127.0.0.1",
        "Centro de datos": "dc1",
        "EtiquetadosDirecciones": {
            "lan": "127.0.0.1",
            "Wan": "127.0.0.1"
        },
        "NodeMeta": {
            "segmento-red-cónsul": ""
        },
        "ServiceKind": "",
        "ServiceID": "bb21f150-7219-4eda-bc91-54686a750228",
        "ServiceName": "test.itsvse",
        "ServiceTags": [
            "prueba",
            "itsvse"
        ],
        "Dirección de servicio": "127.0.0.1",
        "PesosDeservicio": {
            "Pasando": 1,
            "Advertencia": 1
        },
        "ServiceMeta": {},
        "ServicePort": 8082,
        "ServiceEnableTagOverride": falso,
        "ServiceProoxy": {
            "MeshGateway": {},
            "Exponer": {}
        },
        "ServiceConnect": {},
        "CreateIndex": 1314,
        "ModifyIndex": 1314
    }
]


Llamada de servicio consulal

Crea un nuevo proyecto de consola .NET Core con el siguiente código:



Estoy llamando aleatoriamente al servicio registrado test.itsvse y el resultado es el siguiente:



Por último, descarga del código fuente:

Turistas, si queréis ver el contenido oculto de esta publicación, por favorRespuesta




Anterior:Arquitectura: ASP.NET Core configura dinámicamente las actualizaciones en caliente basadas en Consul
Próximo:La importación de archivos DMP es excepcional
Publicado el 30-11-2020 19:57:38 |
w174w174w174
Publicado el 23-7-2021 09:31:37 |
Gracias por compartir
Publicado el 03-09-2021 09:05:16 |
Software, importar decenas de miles de correos, no fingir la muerte, no congelar!!
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com