リンクトレース
大規模システムのマイクロサービス構築では、システムが多数のマイクロサービスに分割されます。これらのモジュールはさまざまな機能を担当し、最終的に豊富な機能を提供できるシステムに結合されます。このアーキテクチャでは、かつてリクエストには複数のサービスが含まれることがよくあります。インターネット アプリケーションは、さまざまなソフトウェア モジュールのセットに基づいて構築されています。これらのソフトウェア モジュールは、さまざまなチームによって開発され、さまざまなプログラミング言語を使用して実装され、複数の異なるデータにわたって数千のサーバーに分散されることがあります。中心 [エリア] は、このアーキテクチャ形式にはいくつかの問題もあります。
l 問題を素早く見つけるにはどうすればよいですか?
l 障害の影響範囲をどのように判断するか?
l サービスの依存関係と依存関係の合理性をどのように整理するか?
l リンクのパフォーマンスの問題とリアルタイムの容量計画を分析するにはどうすればよいですか?
リクエストの障害 (どのマイクロサービスで発生したか) を特定します。
コンセプト: ----》各マイクロサービス ノードに GPS をインストールします ----プログラム内 ----ログを作成します。ログを確認することで、応答エラーを特定できます。
コレクション-----統一インターフェイスに表示されます。
1 つ目は、各マイクロサービスでログ レコードを生成するのに役立ちます。
2 つ目は、これらのログを収集し、グラフィカル インターフェイス上に表示する技術です。
1.探偵
その役割は、マイクロサービスのログ レコードを生成することです。
-
トレース (リクエストの完全なリンク – 多くのスパン (マイクロサービス インターフェイス) を含む)
- 同じトレース ID を持つスパンのグループ (リンク全体) が直列に接続され、ツリー構造を形成します。リクエスト追跡を実装するには、リクエストが分散システムのエントリエンドポイントに到達したときに、サービス追跡フレームワークはリクエストの一意の識別子 (つまり、TraceId) を作成するだけで済みます。フレームワークは、リクエスト全体が返されるまで、常に一意の識別子の値を渡し続けます。次に、この一意の識別子を使用してすべてのリクエストを結合し、完全なリクエスト リンクを形成できます。 スパン
- 作業単位の基本セットを表します。各処理単位の遅延をカウントするために、リクエストが各サービス コンポーネントに到達したときに、その開始、特定のプロセス、および終了も一意の識別子 (SpanId) でマークされます。SpanId の開始タイムスタンプと終了タイムスタンプから、Span の呼び出し時間をカウントすることができ、また、イベントの名前も取得できます。情報およびその他のメタデータを要求します。 注釈
-
一定期間にわたるイベントを記録するために使用します。内部使用に関する重要な注意事項:
l cs (クライアント送信) クライアントは、リクエストを開始するためにリクエストを送信します。
l sr (サーバー受信) サーバーはリクエストを受信し、処理を開始します。sr-cs = 网络延迟(服务调用的时间)
l ss (サーバー送信) サーバーは処理を完了し、クライアントに送信する準備ができていますss - sr = 服务器上的请求处理时间
l cr (クライアント受信) クライアントはサーバーからの応答を受信し、リクエストが終了します。cr - cs = 请求的总时间
1.1 探偵の使い方
すべてのマイクロサービスに sleuth
パッケージが含まれるように、親プロジェクト全体で sleuth の依存関係をマイクロサービスに導入します。
<!--引入sleuth依赖-->
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
</dependencies>
ブラウザのリクエスト リンク全体の応答時間
が 500 ミリ秒を超えています。どのサーバーが失敗したか。sleuth によって生成されたログを表示し、タイムスタンプを自分で計算できます。この解決策は非常に面倒です。
sleuth によって生成されたログを zipkin を通じて収集し、グラフィカルに表示します。
2.ジップキン
機能: マイクロサービス上の sleuth によって生成されたログを収集し、グラフィカル モードで顧客に表示します。
zipkin にはサーバー [サーバー] とクライアント [マイクロサービス] があります
2.1 zipkin サーバーを実行する
java -jar zipkin-server-2.12.9-exec.jar
マイクロサービス アクセス zipkin
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
zipkin を対応するマイクロサービスに接続する
構成を使用する - マイクロサービスの構成管理を行う
sleuth+zipkin がリンク追跡を完了 - 位置エラー