Solution de suivi des liens pour les PME - Spring Cloud Alibaba + Spring Cloud Sleuth + Zipkin

1. Contexte et sélection

1.1 Contexte

Au stade actuel, les microservices ont été largement utilisés dans les petites et moyennes entreprises, il y a donc un problème. Lorsqu'une erreur se produit dans le service D dans la figure ci-dessous, vous ne savez pas que le service B, C ou D a une erreur. Par conséquent, il est nécessaire d'utiliser le suivi des liens de microservice pour localiser précisément et rapidement l'emplacement de l'erreur.
insérez la description de l'image ici

1.2 Sélection

Pour les PME, je pense qu'il y a les exigences suivantes :

  1. open source/gratuit
  2. Couplage faible, pas d'intrusion dans le code
  3. Facile à intégrer et à utiliser, débit modéré

Dans le scénario ci-dessus, abandonnez mycat avec un code plus intrusif et un skywalking et identifiez avec une mauvaise compatibilité et plus de dépendances. J'ai choisi Spring Cloud Sleuth + Zipkin, plus simple et plus facile à utiliser, bien que les fonctions fournies soient relativement simples, elles peuvent parfaitement répondre aux besoins quotidiens des petites et moyennes entreprises.

1.3 Principe simple de Sleuth

Si vous voulez savoir quel service a un problème dans la chaîne d'appel du microservice, vous devez enchaîner ces services pour connaître le service en amont et le service en aval.
insérez la description de l'image ici
Lorsque tous les appels et demandes de retour portent ces paramètres dans la figure, en transportant les informations, vous pouvez obtenir des informations telles que le lien entre les services, le nom du service appelant, le résultat du retour et la durée du service. L'effet du suivi des liens peut être complété.

Si vous voulez connaître le principe détaillé, vous pouvez le lire attentivement : https://www.cnblogs.com/pingyeaa/p/10987438.html

2. Intégrez Sleuth

2.1 Intégration

Ajoutez le code suivant au fichier pom.xml de tous les projets de microservice.

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-sleuth</artifactId>
        </dependency>

2.2 Vérification

Lorsque le style suivant apparaît dans le journal, cela signifie un succès.
insérez la description de l'image ici
Parmi eux, les quatre paramètres fournis par Sleuth sont présentés dans la figure.

  1. flowable-resource fait référence à l'application.name du microservice actuel
  2. trace (trace): Il s'agit d'une collection des étendues suivantes, qui peuvent être comprises comme le service actuel doit appeler plusieurs services pour une interface, et l'identifiant de trace est utilisé pour représenter la collection de tous les appels
  3. Span (span): l'identifiant unique qui envoie une requête http pour que le service actuel appelle d'autres microservices
  4. Vrai s'il faut transférer les données vers Zipkin, puisque Zipkin est connecté ici, c'est vrai

2.3 vue

insérez la description de l'image ici
insérez la description de l'image ici
Comme le montre la figure ci-dessus, flowable-resource appelle la relation correspondante de systemportal et vous pouvez savoir dans quel service se trouve l'erreur. Cependant, dans le cas de nombreux journaux, il est très gênant et compliqué de n'observer que les journaux. , la prochaine étape consiste donc à introduire Zipkin. La sortie de visualisation des journaux est pratique pour une visualisation quotidienne.

3. Intégrez Zipkin

3.1 Construire

Visitez le site officiel : https://github.com/openzipkin/zipkin Cliquez sur le lien ci-dessous pour télécharger.
insérez la description de l'image ici

3.2 commencer

java -jar zipkin-server-2.23.16-exec.jar

Une fois le téléchargement terminé, exécutez la commande ci-dessus pour démarrer le package jar et visitez http://localhost:9411/zipkin pour accéder à la page.

3.3 Projets d'intégration

Ajoutez le code suivant à tous les projets de microservice pom.xml.

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zipkin</artifactId>
        </dependency>

Dans toutes les applications de projet de microservice. yml pour ajouter la configuration suivante.

  zipkin:
    base-url: http://127.0.0.1:9411/ #zipkin地址
    discovery-client-enabled: false  #不用开启服务发现
  sleuth:
    sampler:
      rate: 10000 #每秒数据采集量,多余将丢弃
      probability: 1.0 #采样百分比:收集请求书数量的百分比。(默认为0.1,如果100次访问只将10次上传给zipkin )

3.4 Affichage des informations

Visitez la page d'accueil pour voir une liste des appels de microservice, indiquant si l'appel a abouti, le nombre de requêtes HTTP envoyées, la durée de l'appel et l'appel. Vous pouvez également cliquer sur Afficher pour afficher les détails de l'appel
insérez la description de l'image ici
. Vous pouvez voir si la demande d'envoi a réussi, la raison de l'échec, l'heure d'appel, etc.
insérez la description de l'image ici
insérez la description de l'image ici

3.5 Utilisation de la base de données

Lors de l'utilisation de Zipkin, le stockage de mémoire utilisé par défaut, si le service est interrompu, tous les enregistrements seront perdus, nous pouvons donc utiliser Mysql pour enregistrer les données d'appel.

Après avoir téléchargé le script de base de données, exécutez la commande suivante.
Adresse du script de la base de données : https://github.com/openzipkin/zipkin/blob/master/zipkin-storage/mysql-v1/src/main/resources/mysql.sql

java -jar zipkin-server-2.23.16-exec.jar --STORAGE_TYPE=mysql --MYSQL_HOST=ip --MYSQL_TCP_PORT=3306 --MYSQL_USER=root --MYSQL_PASS=root --MYSQL_DB=zipkin

MYSQL_HOST:数据库地址
MYSQL_TCP_PORT:数据库端口
MYSQL_USER:用户名
MYSQL_PASS:密码

Selon les documents officiels, Mysql n'est recommandé que pour les tests et la démonstration, et ElasticSearch est recommandé pour les environnements de production.

Je suppose que tu aimes

Origine blog.csdn.net/qq_20143059/article/details/122937266
conseillé
Classement