Dans la conception architecturale des applications Internet d’aujourd’hui, les systèmes distribués sont devenus la norme. Dans un système aussi complexe, localiser le point de défaillance lorsqu’un problème survient est une tâche très difficile. Pour résoudre ce problème, les développeurs doivent utiliser des outils de traçage distribués pour découvrir les mystères de la boîte noire des applications. Cet article présentera Sleuth et Zipkin, deux outils de traçage distribués populaires, pour aider les développeurs à mieux surveiller et déboguer les systèmes distribués.
Avec la prolifération des microservicesarchitectures et des systèmes distribués complexes, le suivi du flux de demandes et de réponses entre les composants et les services est devenu essentiel. DistribuéTracingVisualisationprocessus d'exécution des applications, révélant les goulots d'étranglement des performances, les dépendances et les anomalies.
Sleuth : l'outil de suivi de Spring Boot
Sleuth est un framework de traçage distribué léger pour les applications Spring Boot. Il s'intègre à spring cloud Sleuth Starter pour fournir des capacités de suivi prêtes à l'emploi. Ajoutez simplement des dépendances pour capturer automatiquement des événements tels que les requêtes Http, les appels Base de données et les appels de service à distance.
Exemple de code :
@Configuration public class SleuthConfig { @Bean public Sampler sampler() { return Sampler.ALWAYS_SAMPLE; } }
Zipkin : un outil de visualisation pour suivre les données
Zipkin est une plateforme open source permettant de collecter, de stocker et d'interroger des données de suivi. Il fournit une interface utilisateur interactive qui permet aux utilisateurs d'explorer intuitivement les données de trace et d'identifier les dépendances et les problèmes de performances.
Exemple de code :
import io.zipkin.reporter.AsyncReporter; import io.zipkin.reporter.okhttp3.Okhttpsender; import io.zipkin.zipkin2.Span; // 使用 OkHttp 发送器将追踪数据发送到 Zipkin 服务器 OkHttpSender sender = OkHttpSender.newBuilder().endpoint("http://localhost:9411/api/v2/spans").build(); // 使用异步报告器,提高性能 AsyncReporter reporter = AsyncReporter.newBuilder(sender).build(); // 上报追踪信息到 Zipkin 服务器 reporter.report(span);
Le mariage de Sleuth et Zipkin
L'intégration de Sleuth avec Zipkin permet d'exporter facilement les données de suivi de l'application Sleuth vers la plateforme Zipkin. Cette intégration est possible via le spring Cloud Sleuth Zipkin Starter.
Exemple de code :
@Configuration public class SleuthZipkinConfig { @Bean public ZipkinSender sender() { return new ZipkinSender(); } @Bean public SpanReporter reporter() { return new SpanReporter.Builder(sender()).build(); } }
Avantages du traçage distribué
Le traçage distribué présente les avantages suivants en matière de développement et de maintenance d'applications :
Conclusion
Sleuth et Zipkin sont une puissante combinaison de traçage distribué, permettant aux développeurs d'avoir un aperçu de la logique interne d'une application, améliorant ainsi les performances et la fiabilité. En intégrant ces deux outils dans des systèmes distribués, vous pouvez améliorer considérablement l'observabilité des applications et obtenir les informations dont vous avez besoin pour contrôler, optimiser et dépanner.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!