Dans cette série d'articles, nous présenterons le projet open source ** Alibaba ** de contrôle de flux ** Sentinel Java ** en comparaison avec ** Hystrix **.
High Stricks a été très populaire ces dernières années. Maintenant que nous sommes en mode maintenance, beaucoup recherchent des alternatives. Cet article présente Sentinel, un projet de contrôle de flux Java open source. Je vais le présenter en le comparant à Hystrix, qui est familier à plus de gens. Dans cette partie, nous comparerons les deux à un niveau supérieur. La prochaine fois, examinons quelques exemples de code.
En termes simples, c'est un disjoncteur. Le disjoncteur est activé lorsqu'une ressource particulière continue de tomber en panne. Au lieu de continuer à frapper des ressources qui sont déjà en panne, le disjoncteur intercepte la demande et renvoie un signal d'échec. Cela ressemble à tous les modèles de disjoncteurs. Cependant, Sentinel offre plus d'options telles que la mise en forme du flux, la protection contre les surcharges et la tolérance aux pannes.
--2012: Sentinel a démarré en tant que composant de contrôle de flux d'Alibaba --2013-2017: Avec la croissance spectaculaire des microservices, le défi de la fiabilité viendra. Sentinel se transforme rapidement en un outil pour éviter les catastrophes en cascade. --2018: Sentinel sera open source par Alibaba.
--Sential offre de nombreuses options pour gérer le contrôle de flux. Les utilisateurs peuvent façonner le trafic en fonction de QPS, du nombre de pools de threads, de la charge du système et peuvent également utiliser des commandes directement pour arrêter le trafic ou effectuer un démarrage à froid. Les utilisateurs peuvent également utiliser une combinaison de différentes règles. Hystrix n'offre pas de modelage complet du trafic.
--Sentinal offre une isolation des défauts et un freinage de circuit. Ceci est similaire à Hystrix. Mais ces approches sont différentes. --Sentinal fournit une surveillance en temps réel. Il fournit également un tableau de bord qui regroupe les informations des systèmes distribués.
La principale différence entre les deux est de savoir comment réaliser la séparation. Hystrix utilise généralement des modèles de cloison pour isoler les dépendances. Hystrix place chaque dépendance dans un pool de threads distinct. Le principal avantage de cette méthode est qu'elle permet une coupe nette. L'inconvénient est principalement la surcharge liée à la gestion du pool de threads.
Sentinel, en revanche, utilise un compteur pour chaque dépendance. Cela évite non seulement la surcharge de gestion du pool de threads, mais donne également à l'utilisateur plus de contrôle. Les utilisateurs peuvent désormais déterminer la granularité de la dégradation des flux.
Ce tableau détaille les différences entre Hystrix et Sentinel dans la conception et la mise en œuvre.
Cela peut sembler un peu écrasant. Cependant, les utilisateurs ne remarqueront pas beaucoup de différence en termes d'expérience utilisateur.
Sentinal convient aux environnements cloud natifs. Il peut être intégré à d'autres solutions natives cloud populaires. L'un d'eux est Spring Cloud. Dubbo est un autre cadre de distribution Java populaire en Chine. Sentinal peut également travailler côte à côte avec des solutions de maillage de service telles qu'Istio et Envoy.
Sentinal sera bientôt publié dans le cadre du framework Spring Boot. Voir leur GitHub repo pour plus d'informations.
Recommended Posts