中小企業向けリンク追跡ソリューション - Spring Cloud Alibaba+Spring Cloud Sleuth + Zipkin

1. 背景と選択

1.1 背景

現段階ではマイクロサービスは中小企業で広く使われているため、下図のサービスDでエラーが発生した場合、サービスB、サービスC、サービスDでエラーが発生していることが分からないという問題があります。エラー。したがって、マイクロサービス リンク トラッキングを使用して、エラーの場所を正確かつ迅速に特定する必要があります。
ここに画像の説明を挿入

1.2 選択

中小企業の場合、次のような要件があると思います。

  1. オープンソース/無料
  2. 低結合、コードへの侵入なし
  3. 統合と使用が簡単、中程度のスループット

上記のシナリオでは、より侵入的なコードとスカイウォーキングを伴う mycat をあきらめ、互換性が低く、依存関係がより多くなる箇所を特定します。今回は、よりシンプルで使いやすい Spring Cloud Sleuth + Zipkin を選択しましたが、提供されている機能は比較的シンプルですが、中小企業の日常的なニーズには十分に対応できます。

1.3 スルースの簡単な原理

マイクロサービス呼び出しチェーン内でどのサービスに問題があるかを知りたい場合は、これらのサービスをつなぎ合わせて、上流のサービスと下流のサービスを知る必要があります。
ここに画像の説明を挿入
図のすべての呼び出しと応答リクエストがこれらのパラメーターを運ぶ場合、その情報を運ぶことで、サービス間のリンク、呼び出しサービスの名前、戻り結果、サービスの所要時間などの情報を取得できます。リンクトラッキングの効果を完了できます。

詳細な原理を知りたい場合は、注意深く読んでください: https://www.cnblogs.com/pingyeaa/p/10987438.html

2. スルースを統合する

2.1 統合

すべてのマイクロサービス プロジェクトの pom.xml ファイルに次のコードを追加します。

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

2.2 検証

次のスタイルがログに表示されたら、成功を意味します。
ここに画像の説明を挿入
このうち、Sleuth が提供する 4 つのパラメータを図に示します。

  1. flowable-resource は、現在のマイクロサービスの application.name を参照します。
  2. トレース (トレース): これは次のスパンのコレクションであり、現在のサービスが 1 つのインターフェイスに対して複数のサービスを呼び出す必要があると理解でき、トレース ID はすべての呼び出しのコレクションを表すために使用されます。
  3. スパン (スパン): 現在のサービスの http リクエストを送信して他のマイクロサービスを呼び出す一意の ID
  4. Zipkin にデータを転送するかどうかは True、Zipkin はここに接続されているため、True

2.3ビュー

ここに画像の説明を挿入
ここに画像の説明を挿入
上図からも分かるように、flowable-resourceはsystemportalの対応関係を呼び出しているので、どのサービスでエラーが発生しているのかが分かります。しかし、ログが大量にある場合、ログを観察するだけでは非常に面倒で煩雑です。ということで、次はZipkinの導入ですが、ログの可視化出力は日々の閲覧に便利です。

3.Zipkinを統合する

3.1 ビルド

公式 Web サイトにアクセスしてください: https://github.com/openzipkin/zipkin 下のリンクをクリックしてダウンロードしてください。
ここに画像の説明を挿入

3.2 スタート

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

ダウンロードが完了したら、上記のコマンドを実行して jar パッケージを開始し、http://localhost:9411/zipkin にアクセスしてページにアクセスします。

3.3 統合プロジェクト

次のコードをすべてのマイクロサービス プロジェクト pom.xml に追加します。

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

すべてのマイクロサービス プロジェクト アプリケーション。yml に次の設定を追加します。

  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 表示情報

ホームページにアクセスして、呼び出しが成功したかどうか、送信された http リクエストの数、呼び出し時間、呼び出しなど、マイクロサービス呼び出しのリストを表示します。また、[表示] をクリックして呼び出しの詳細を表示することもできます
ここに画像の説明を挿入
送信リクエストが成功したかどうか、失敗した理由、呼び出し時間などが確認できます。
ここに画像の説明を挿入
ここに画像の説明を挿入

3.5 データベースの使用

デフォルトで使用されるメモリ ストレージである Zipkin を使用する場合、サービスが中断されるとすべてのレコードが失われるため、Mysql を使用して呼び出しデータを保存できます。

データベーススクリプトをダウンロードしたら、以下のコマンドを実行します。
データベース スクリプト アドレス: 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:密码

公式ドキュメントによると、Mysql はテストとデモンストレーションにのみ推奨され、ElasticSearch は運用環境に推奨されています。

おすすめ

転載: blog.csdn.net/qq_20143059/article/details/122937266