Compartir tecnología

Spring Cloud Alibaba: centinela de tráfico del sistema distribuido Sentinel

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Insertar descripción de la imagen aquí

Descripción general

A medida que los microservicios se vuelven más populares, la estabilidad entre servicios y servicios se vuelve cada vez más importante. Sentinel es un componente de gestión de tráfico para una arquitectura de servicios heterogéneos distribuidos en varios idiomas. Utiliza principalmente el tráfico como punto de entrada, cubriendo el enrutamiento del tráfico, el control del tráfico, la configuración del tráfico, la degradación del disyuntor, la protección adaptable contra sobrecarga del sistema, la protección del tráfico en puntos calientes, etc. Dimensión para ayudar a los desarrolladores a garantizar la estabilidad de los microservicios.

En pocas palabras, Sentinel es un componente de gestión de tráfico, equivalente a Spring Cloud Circurk Breaker.

característica

  • Escenarios de aplicaciones enriquecidos: Sentinel se ha hecho cargo de los escenarios centrales de la promoción de tráfico Double Eleven de Alibaba en los últimos 10 años, como las ventas flash (es decir, el tráfico en ráfagas se controla dentro del rango que la capacidad del sistema puede soportar), la reducción de picos de mensajes y llenado de valles, y control de tráfico de clústeres, fusión en tiempo real de aplicaciones posteriores no disponibles, etc.
  • Monitoreo completo en tiempo real: Sentinel también proporciona funciones de monitoreo en tiempo real. Puede ver los datos de segundo nivel de una sola máquina conectada a la aplicación en la consola, e incluso el estado de operación resumido de un clúster de menos de 500 máquinas.
  • Amplio ecosistema de código abierto: Sentinel proporciona módulos de integración listos para usar con otros marcos/bibliotecas de código abierto, como la integración con Spring Cloud, Apache Dubbo, gRPC y Quarkus. Solo necesita introducir las dependencias correspondientes y realizar una configuración simple para conectarse rápidamente a Sentinel. Al mismo tiempo, Sentinel proporciona implementaciones nativas en múltiples lenguajes como Java/Go/C.
  • Mecanismo de extensión SPI completo: Sentinel proporciona una interfaz de extensión SPI completa y fácil de usar. Puede personalizar rápidamente la lógica implementando interfaces de extensión. Por ejemplo, gestión de reglas personalizadas, adaptación de fuentes de datos dinámicas, etc.

Características principales de Sentinel:
Insertar descripción de la imagen aquí

concepto basico

recurso

Los recursos son un concepto clave en Sentinel. Puede ser cualquier cosa dentro de una aplicación Java, como un servicio proporcionado por la aplicación, o por otra aplicación llamada por la aplicación, o incluso un fragmento de código. En la siguiente documentación, utilizaremos recursos para describir bloques de código.

Siempre que el código definido a través de la API de Sentinel sea un recurso, Sentinel puede protegerlo. En la mayoría de los casos, puede utilizar firmas de métodos, URL o incluso nombres de servicios como nombres de recursos para identificar recursos.

regla
Las reglas establecidas en torno al estado de los recursos en tiempo real pueden incluir reglas de control de flujo, reglas de degradación de disyuntores y reglas de protección del sistema. Todas las reglas se pueden ajustar dinámicamente en tiempo real. (Las reglas se pueden establecer en la consola Sentinel, la configuración yml y el código java)

Instalar centinela

El uso de Sentinel se puede dividir en dos partes:

  • Biblioteca principal (cliente Java): no depende de ningún marco/biblioteca y puede ejecutarse en Java 8 y superiorversión del entorno de ejecución y también tiene un buen soporte para marcos como Dubbo/Spring Cloud.
  • Panel de control: el panel de control es el principal responsable de administrar las reglas de inserción, monitorear y administrar la información de la máquina.

Ruta de descarga:https://github.com/alibaba/Sentinel/releases

Después de la descarga, busque el paquete jar y ejecute el comando para iniciar la consola Sentinel.

java -jar sentinel-dashboard-xxx.jar

El entorno local debe tener la versión jdk8 o superior y el puerto 8080 no está ocupado (puerto de consola Sentinel)
A partir de Sentinel 1.6.0, la consola Sentinel introduce funciones de inicio de sesión básicas. El nombre de usuario y la contraseña predeterminados son URL de acceso: http://localhost:8080.
Insertar descripción de la imagen aquí

El caso de introducir Sentinel en microservicios

Cree un nuevo microservicio, presente Nacos y Sentinel, registre el servicio en Nacos y realice monitoreo de tráfico, disyuntor y degradación del servicio.

Introducir dependencias