最近、プロジェクトに簡単な分散リクエスト追跡機能を追加したいと考えています。フロントエンドからゲートウェイへのリクエストを開始し、ゲートウェイから Spring Cloud マイクロサービスを呼び出します。これらのプロセス中に、ログから分散 ID リンクが表示されることを期待します。問題のトラブルシューティングを容易にするために、リクエスト ID を通じてリンク全体を追跡できます。
既存のソリューションとしては、当然ながら SkyWalking、Spring Cloud Sleuth、Zipkin などのコンポーネントを使用することになります。ただし、ログクエリを容易にするために、さまざまなサービスで常に実行できる ID を記録することが主な目的であるため、複雑なコンポーネントをあまり導入したくありません。最終的に、MDC を介してログに追跡 ID を出力し、Feign と RestTemplate のマイクロサービスにリクエスト ID を渡すことにしました。 主にいくつかのステップが含まれます:
MDCC MDC (Mapped Diagnostic Context) は、マルチスレッド条件下でのログ記録を容易にするために Log4j と Logback によって提供される機能です。 MDC は、キーと値のペアを追加できる、現在のスレッドにバインドされたハッシュ テーブルとして考えることができます。 MDCの主な業務:
TraceIdツールクラスを追加しました まず、TRACE_ID の定数値と TRACE_ID の設定および生成方法を定義する TraceIdUtils ツール クラスを追加します。以降のコードはこの推定クラスを通じて操作されます。
WebFilter経由でTraceIdフィルターを追加する リクエスト ヘッダーから TraceIdUtils.TRACE_ID に対応する値を取得するために、GenericFilterBean を追加します。この値は、フロントエンドがリクエストを開始するとき、またはマイクロサービス間で渡されるときに伝達されます。値がない場合、TraceIdUtils.setTraceId によって値が生成されます。
SpringBoot スタートアップ クラスに @ServletComponentScan アノテーションを追加することを忘れないでください。そうしないと、カスタム フィルターは有効になりません。 「com.yourtion.trace.filter」は、TraceIdFilter が配置されているパッケージ名です。
FeignにTraceIdを追加する @FeignClient プロキシ クラスは実行時に Spring コンテキストの RequestInterceptor を使用するため、独自のインターセプターをカスタマイズして Spring コンテキストに挿入し、リクエスト コンテキストにカスタム リクエスト ヘッダーを追加できるようにします。
RestTemplate に TraceId を追加する 一部のリクエストは RestTemplate を通じて開始されます。以前は、RestTemplateConfig 構成クラスを独自に実装していました。今回は、関連する構成に以下を追加しました。
この時点で、リンクへの TraceId の追加は完了しており、残っているのはそれをログに印刷することだけです。 Log4j2のレイアウト形式を変更する MDC に traceId を出力するために、ログのレイアウト形式を変更します。
この時点で変更は完了です。 |
<<: 2021 年に組織が完璧なクラウド コンピューティング戦略を作成するための 3 つの柱
>>: IBMはまたもや戦いに敗れた。クラウド コンピューティングは Big Blue に悪影響を及ぼしていますか?
私は個人的にWeChatにあまり興味がありませんが、WeChatが本当に強力であることは事実です。W...
1. 菜鳥の最新動向:アリババの物流事業を統合昨日(9月3日)、Cainiao Networkは最初...
クラウド コンピューティング サービスは、主にエネルギー効率の向上と持続可能な慣行の促進を通じて、I...
Baidu 検索の最近のアップグレードにより、ますます多くのウェブマスターが自分のウェブサイトのオリ...
調査によると、データセンターのハードウェアを Open Compute Project (OCP) ...
SEO 担当者にとって、個人ブログは不可欠です。なぜなら、ブログは SEO 作業を支援し、SEO の...
今年、Green Radish と Pomegranate アルゴリズムが導入され、SEO 業界は大...
1. 今回の上場によるXunleiの評価額は10億米ドル以上です。 2. Xunlei の主な収益は...
コンテンツが王様の時代が到来しました。ウェブサイトの最適化を専門とする人たちも同じ気持ちでしょう。ウ...
Vaicdn は、ワンストップ統合 CDN、AI ロードバランシング、DDoS 防御、Web アプリ...
最近、中国のウェブマスターフォーラムを閲覧していたところ、多くの初心者ウェブマスターが解決が難しい問...
Yitan Cloud製品期間限定フラッシュセール&QQ Musicコレクションイベント開催中! Y...
今最も視聴率が高い番組は何かと聞かれたら、多くの人は人気があり物議を醸しているテレビシリーズ「マイン...
dedipath では、1 Gbps の帯域幅、無制限のトラフィック、デュアルコア E5、ニューヨー...
Qigegeのビジョンでは、将来的には、チャネルの面では、オフライン店舗を開設し、独自のプラットフォ...