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.
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 favor Respuesta |