前回の記事「分散サービストラッキング(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、モバイルファースト アーキテクチャを推進し、未来のインテリジェント デジタル ワークプレイスを実現
Vultr が月額 2.50 ドルの VPS をキャンセルしたことに気づきましたか? 512M メモ...
delimiter.com は、もともと中古の低価格サーバーのホスティングとレンタルを専門とする企業...
月収10万元の起業の夢を実現するミニプログラム起業支援プラン以前、ウェブサイトが含まれない理由を分析...
百度は6月から一連の盗作収集サイトに対して厳しい取り締まりを開始した。しかし、筆者は最近、ある盗作収...
ZZD5 ブログより引用: ウェブサイトが数多く存在するこの時代では、ウェブサイトが上位にランクされ...
南方都市報によると、昨日、2013年春節の旅行ラッシュ初日の列車チケットが正式に先行販売期間に入り、...
ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスご存知のとおり、Weib...
以前の記事で、ソーシャルメディアはイベントマーケティングに最適なプラットフォームであると述べました。...
インターネットの発展は社会の形態を変えました。オフラインからオンラインへ、実体経済から電子商取引へ、...
最近、私はサイトのロングテールキーワードを最適化するという考えについて考えていました。同業ウェブサイ...
SEO のメリットは魔法のようで、何でもできる孫悟空のようだとよく言われます。しかし、SEO とは何...
linode.com の 10 ドル割引コード: LINODE10 が、今年 9 月に復活しました。...
gacloud、香港 An Cloud Technology (Hong Kong) Co., Lt...
spinserversは、2009年に設立された新しいブランドですが、実は25年間運営している、弊社...
[51CTO.com クイック翻訳] コンテナのセキュリティに関しては、Tesla が経験したような...