前回の記事「分散サービストラッキング(Logstashの統合)」を通じて、ELKプラットフォームが提供する収集、保存、検索などの強力な機能を利用できるようになり、トラッキング情報の管理と利用が非常に便利になりました。ただし、ELK プラットフォームのデータ分析ディメンションでは、リクエスト リンクの各段階での時間遅延が考慮されていません。多くの場合、リクエスト リンクをトレースする理由の 1 つは、コール リンク全体の過度の遅延のボトルネックの原因を見つけること、または分散システムの遅延監視などの時間関連の要件を満たすことです。現時点では、ELK のようなログ分析システムはやや弱いようです。このような問題には、Zipkin を導入すると簡単に解決できます。 Zipkin の紹介 Zipkin は、Google Dapper をベースにした Twitter のオープンソース プロジェクトです。これを使用して、各サーバーのリクエスト リンクの追跡データを収集し、提供される REST API インターフェイスを使用して追跡データを照会し、分散システムの監視プログラムを実装することで、システム内の遅延増加の問題を迅速に発見し、システム パフォーマンスのボトルネックの根本原因を見つけることができます。開発指向の API インターフェースに加えて、追跡情報を直感的に検索したり、リクエスト リンクの詳細を分析したりするのに役立つ便利な UI コンポーネントも提供します。たとえば、一定期間内の各ユーザーリクエストの処理時間を照会できます。 上の図は、4 つのコア コンポーネントで構成される Zipkin の基本アーキテクチャを示しています。
HTTP コレクション Zipkin の統合は Spring Cloud Sleuth に自動構成でカプセル化されているため、簡単に導入して使用できます。 Sleuth と Zipkin の基本的な統合プロセスを詳しく見てみましょう。主に2つのステップに分かれています。 ステップ1: Zipkinサーバーを構築する zipkin-server という名前の基本的な Spring Boot アプリケーションを作成し、次のように pom.xml に Zipkin Server の依存関係を導入します。
上記のプロジェクトを作成したら、それを起動して http://localhost:9411/ にアクセスします。 Zipkin 管理ページは次のように表示されます。 ステップ2: アプリケーション用のZipkinサービスを導入して構成する Zipkin サーバーの構築が完了したら、追跡情報を Zipkin サーバーに出力するようにアプリケーションを構成する必要があります。以前実装した trace-1 と trace-2 を例として、次の変更を加えてみましょう。
テストと分析 この時点で、Zipkin サーバーに接続するための基本的な作業はすべて完了しました。引き続き eureka-server、trace-1、trace-2 を起動し、いくつかのテスト実験を行って、その動作メカニズムを予備的に理解することができます。 まず、trace-1 インターフェース (http://localhost:9101/trace-1) にいくつかのリクエストを送信します。ログ内のトレース情報の最後の値が true の場合、トレース情報が Zipkin サーバーに出力されることを意味します。したがって、この時点で、Zipkin Server 管理ページに移動し、適切なクエリ条件を選択し、[トレースの検索] をクリックして、ログに表示されたトレース情報をクエリできます (ページの右上隅にある入力ボックスで、ログ内のトレース ID に従って検索することもできます)。次のページを参照してください。 以下の trace-1 エンドポイントをクリックすると、懸念されるリクエスト時間の消費など、Sleuth によって収集された詳細情報も取得できます。 ナビゲーション バーの [依存関係] メニューをクリックすると、追跡情報分析に基づいて Zipkin Server によって生成されたシステム要求リンク依存関係グラフも表示できます。 メッセージミドルウェアコレクション Zipkin を統合する場合、Spring Cloud Sleuth は HTTP 経由でトレース情報を収集するだけでなく、メッセージ ミドルウェアを通じてトレース情報の非同期収集もカプセル化します。 Spring Cloud Stream を組み合わせることで、アプリケーション クライアントがトレース情報をメッセージ ミドルウェアに簡単に出力できるようになり、Zipkin サーバーはメッセージ ミドルウェアからこのトレース情報を非同期的に使用できるようになります。 次に、以前に実装した trace-1 および trace-2 アプリケーションと zipkin-server サーバーに基づいていくつかの変更を加え、メッセージ ミドルウェアを通じてトレース情報を収集します。変換は非常に簡単です。すぐに実装するには、プロジェクトの依存関係と構成ファイルにいくつかの調整を加えるだけです。以下では、クライアントとサーバーの変換について詳しく説明します。 ステップ1: クライアントのトレース1とトレース2を変更する
ステップ2: zipkin-serverサーバーを変更する zipkin-server サーバーがメッセージ ミドルウェアから追跡情報を取得できるようにするには、pom.xml でメッセージ ミドルウェアの収集とカプセル化のためのサーバー側依存関係 spring-cloud-sleuth-zipkin-stream を導入するだけで済みます。同時に、使用される特定のメッセージ ミドルウェアをサポートするために、メッセージ ミドルウェアのバインダー実装も導入する必要があります。たとえば、RabbitMQ を例にとると、依存関係に次のコンテンツを追加できます。
spring-cloud-sleuth-zipkin-stream 依存関係は、メッセージ ミドルウェアからトレース情報を収集するためのコア カプセル化であり、メッセージ ミドルウェアを統合するためのコア依存関係、zipkin サーバーのコア依存関係、およびその他のよく使用される依存関係 (たとえば、データ ストレージを拡張するための依存関係、テストをサポートするための依存関係など) が含まれます。ただし、このパッケージは zipkin のフロントエンド依存関係 zipkin-autoconfigure-ui を導入しないことに注意してください。使いやすさのために、ここでも参照します。 テストと分析 上記の変換が完了したら、eureka-server、trace-1 および trace-2、zipkin-server の起動を継続し、RabbitMQ も実行状態であることを確認します。この時点で、RabbitMQ コントロール ページに sleuth という名前のスイッチが表示されます。これは、zipkin メッセージ ミドルウェア コレクター実装で使用されるデフォルトのトピックです。 ***、以前の検証方法を使用し、trace-1 インターフェースにいくつかのリクエストを送信します: http://localhost:9101/trace-1。サンプリングされたトレース情報がある場合 (デバッグ時に、各トレース情報を収集するために AlwaysSampler サンプリング メカニズムを設定できます)、RabbitMQ コントロール ページでメッセージが sleuth exchanger に送信されたことを確認できます。同時に、zipkin サーバーの Web ページで対応するトレース情報を検索することもできます。これで、メッセージ ミドルウェアを使用してトレース情報を収集するタスクは完了です。 完全な例: 読者は、自分の好みに応じて、次の 2 つのリポジトリで trace-1 プロジェクトと trace-2 プロジェクトを表示することを選択できます。 Github: https://github.com/dyc87112/SpringCloud-Learning/ gitee: https://gitee.com/didispace/SpringCloud-Learning/ 【この記事は51CTOコラムニスト「Zhai Yongchao」によるオリジナル記事です。転載の許可を得るには、51CTO を通じて著者に連絡してください。 この著者の他の記事を読むにはここをクリックしてください |
<<: VMware が新たなエコシステムの構築に向けて Cloud Harbor を立ち上げ
>>: Aruba、モバイルファースト アーキテクチャを推進し、未来のインテリジェント デジタル ワークプレイスを実現
ベストセラーのオンライン小説が100以上のウェブサイトで海賊版化されるCCTVニュースチャンネル「ニ...
2016年10月10日、 Bステーションの「萌え」祭り。この日、ビリビリ待望の「プレミアム会員」制度...
ウェブサイトの外部リンクの構築は、ウェブサイトの SEO 最適化のプロセスにおいて非常に重要な役割を...
化粧品のEコマースの急成長文/天下網記者ヤン・チン規模で見ると、化粧品は婦人服、紳士服に次いでタオバ...
SEO 最適化ウェブマスターの観点から見ると、ウェブサイトの重みはサイトにとって非常に重要です。重み...
Kurunは、国内の高速アクセスを確保するために、常にハイエンドのリターン回線を提供することで有名で...
「お客様は神様です。」この言葉は、企業はユーザー中心でなければならないという原則として何度も繰り返さ...
基本的なウェブサイト エクスペリエンスは、SEO 最適化の前提条件です。初期段階でこれらの基礎が適切...
edgenat は、すべての VPS を 30% 割引する Double 12 プロモーションを実施...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますコンテンツ...
現在、世界各国はビッグデータ、モノのインターネット、クラウドコンピューティングなどのハイテクの発展に...
A5 Webmaster Network (www.admin5.com) は 4 月 15 日に、...
ロサンゼルスのアンチャンデータセンターにあるvpsmsのCN2 GIA VPS(Netflixを直接...
uuuvps(Sanyouyun)も香港Alibaba Cloud NetworkのVPSに加わり、...
CrownCloud はオーストラリアで設立された VPS プロバイダーであり、1990 年から仮想...