Partage de technologie

Spring Cloud Alibaba - Sentinelle de trafic du système distribué Sentinel

2024-07-08

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

Insérer la description de l'image ici

Aperçu

À mesure que les microservices deviennent plus populaires, la stabilité entre les services et les services devient de plus en plus importante. Sentinel est un composant de gestion du trafic pour une architecture de services hétérogène distribuée et multilingue. Il utilise principalement le trafic comme point d'entrée, couvrant le routage du trafic, le contrôle du trafic, la mise en forme du trafic, la dégradation des disjoncteurs, la protection adaptative contre les surcharges du système, la protection du trafic par points chauds, etc. . Dimension pour aider les développeurs à assurer la stabilité des microservices.

En un mot, Sentinel est un composant de gestion du trafic, équivalent à Spring Cloud Circurk Breaker.

fonctionnalité

  • Scénarios d'application riches : Sentinel a repris les scénarios de base de la promotion du trafic Double Eleven d'Alibaba au cours des 10 dernières années, tels que les ventes flash (c'est-à-dire que le trafic en rafale est contrôlé dans la plage que la capacité du système peut supporter), l'écrêtement des pics de messages. et le remplissage des vallées, et le contrôle du trafic des clusters, la fusion en temps réel des applications indisponibles en aval, etc.
  • Surveillance complète en temps réel : Sentinel fournit également des fonctions de surveillance en temps réel. Vous pouvez voir les données de deuxième niveau d'une seule machine connectée à l'application dans la console, et même le résumé de l'état de fonctionnement d'un cluster de moins de 500 machines.
  • Écosystème open source étendu : Sentinel fournit des modules d'intégration prêts à l'emploi avec d'autres frameworks/bibliothèques open source, tels que l'intégration avec Spring Cloud, Apache Dubbo, gRPC et Quarkus. Il vous suffit d'introduire les dépendances correspondantes et d'effectuer une configuration simple pour vous connecter rapidement à Sentinel. Parallèlement, Sentinel propose des implémentations natives dans plusieurs langages tels que Java/Go/C.
  • Mécanisme d'extension SPI complet : Sentinel fournit une interface d'extension SPI complète et facile à utiliser. Vous pouvez rapidement personnaliser la logique en implémentant des interfaces d'extension. Par exemple, gestion de règles personnalisées, adaptation de sources de données dynamiques, etc.

Principales fonctionnalités de Sentinel :
Insérer la description de l'image ici

concept de base

Ressource

Les ressources sont un concept clé dans Sentinel. Il peut s'agir de n'importe quoi dans une application Java, comme un service fourni par l'application, ou par une autre application appelée par l'application, ou même un morceau de code. Dans la documentation suivante, nous utiliserons des ressources pour décrire les blocs de code.

Tant que le code défini via l'API Sentinel est une ressource, il peut être protégé par Sentinel. Dans la plupart des cas, vous pouvez utiliser des signatures de méthode, des URL ou même des noms de service comme noms de ressources pour identifier les ressources.

règle
Les règles définies autour de l'état en temps réel des ressources peuvent inclure des règles de contrôle de flux, des règles de dégradation des disjoncteurs et des règles de protection du système. Toutes les règles peuvent être ajustées dynamiquement en temps réel. (Les règles peuvent être définies dans la console Sentinel, la configuration yml et le code Java)

Installer Sentinelle

L'utilisation de Sentinel peut être divisée en deux parties :

  • Bibliothèque principale (client Java) : ne dépend d'aucun framework/bibliothèque et peut s'exécuter sur Java 8 et supérieurversion de l'environnement d'exécution, et prend également en charge des frameworks tels que Dubbo/Spring Cloud.
  • Tableau de bord : le tableau de bord est principalement responsable de la gestion des règles push, de la surveillance et de la gestion des informations sur la machine.

Chemin de téléchargement :https://github.com/alibaba/Sentinel/releases

Après le téléchargement, recherchez le package jar et exécutez la commande pour démarrer la console Sentinel.

java -jar sentinel-dashboard-xxx.jar

L'environnement local doit avoir la version jdk8 ou supérieure et le port 8080 n'est pas occupé (port de la console Sentinel)
À partir de Sentinel 1.6.0, la console Sentinel introduit les fonctions de connexion de base. Le nom d'utilisateur et le mot de passe par défaut sont tous deux l'URL d'accès Sentinel : http://localhost:8080.
Insérer la description de l'image ici

Le cas de l’introduction de Sentinel dans les microservices

Créez un nouveau microservice, introduisez Nacos et Sentinel, enregistrez le service dans Nacos et effectuez la surveillance du trafic, le disjoncteur et la rétrogradation du service.

Introduire des dépendances