まず、理論的基礎
1.1、分散監視及びリンクの背景を追跡
マイクロサービスシステムでは、事業開発と、さまざまなサービスとの間の通話がより複雑になり、ますます大きくなります。HTTPリクエストが長すぎるエラーが失敗した要求またはサービスネットワーク遅延と表示されることがあり、この呼び出しの過程で、最終的な結果を返すために別の微細加工サービスの数を呼び出し、この時間には、要求を監視することが重要ですA。
春クラウドスルースは、ソリューションを監視し、分散サービスのリンクを提供します。
1.2、 春の雲スルース
これは、追跡サービスの呼び出しの間のリンクを提供します。
役割:
(1)によっては、はっきりと知ることができるかのサービス、それがスルースを取るどのくらいの各サービス処理を介してサービス要求。
(2)時間のかかる分析:スルースは時間がかかる呼び出すためにどのサービスを分析することができます。
(3)エラーの可視化:手順に捕捉されない例外は、集積Zipkin上のサービス・インターフェースを介して見ることができます。
(送信情報にZのipkin 、使用Z ipkin 店舗情報ストアを使用してZをipkin U- I 表示データに)
(4)リンクの最適化:より頻繁にサービスの呼び出し、あなたはこれらのサービスを最適化するための措置の数を実装することができます
1.3、導入Zipkinフレームワーク
Zipkin Twitterはオープンソースプロジェクトです。あなたは、各サービス要求のリンク上でデータを追跡収集するためにそれを使用することができ、かつ、分散システムのためのプログラムの監視を可能にするために、クエリのトラッキングデータを支援するためのインタフェースを提供REST APIを介してこのようにタイムリーな検出は、システムが長すぎる遅れの問題で発生しました。
Zipkinとコンフィグ同様の構造は、サーバーのサーバー、クライアントクライアントに分け、クライアントは、個々のマイクロサービスアプリケーションです。
1.4、ビルドZipkin 統合RabbitMQの非同期転送を
- 1、スタートのRabbitMQを
- 2は、開始Z- ipkinを(自動的に作成Z- ipkin キュー)
- 3、開始するZ ipkinClientを非同期転送キューの形で
1.5、サービスの追跡原理
要求は、分散システムの入口端部に送られると、追跡要求を実現するために、サービスのみのためのフレームワークを作成するための要求を追跡する必要が独自のトラッキング識別子。同時に場合、分散システム内の広がり、それが一意に識別していることを、これまで要求元に戻るまでの一意の識別子を使用して送信されたフレーム保持トレースIDを。トレースIDのレコードを、我々はすべての要求プロセスの仲間を記録することができるようになります。
要求がそれぞれのサービス・コンポーネントに到達する、または処理ロジックは、特定の状態に達し、各処理単位の時間統計遅延時間は、一意の識別子によりマークを開始し、特定のプロセスが終了すると、識別は前述されていますスパンID。
SpanIdは、各要求を記録 TRACEID 全体の呼び出しチェーンのグローバル記録IDを。
第二に、ビルド環境
2.1、ビルドに環境をZipkin
春のブートバージョン2.0の後、公式Zipkinが独自のサーバーを構築するのではなく、直接コンパイルされたjarパッケージを提供廃止されました。
公式サイト:https://zipkin.io/pages/quickstart.html
スタート:
默认端口号启动zipkin服务
java –jar zipkin.jar 默认端口号; 9411
http://192.168.18.220:9411
指定端口号启动9411
java -jar zipkin.jar --server.port=8080
アクセス指定のRabbitMQ スタート
ます。java -jar zipkin.jar - zipkin.collector.rabbitmq.addresses = 127.0.0.1
2.2、ZipkinClient統合
(1)Mavenの依存
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
(2)application.yml
spring:
application:
name: app-itmayiedu-member
zipkin:
base-url: http://192.168.18.220:9411/
###全部采集
sleuth:
sampler:
probability: 1.0
(3)ZipkinClient統合のRabbitMQ
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-binder-rabbit</artifactId>
</dependency>
spring:
application:
name: app-itmayiedu-order
zipkin:
base-url: http://192.168.18.220:9411/
### 默认可以不用写
rabbitmq:
####连接地址
host: 127.0.0.1
####端口号
port: 5672
####账号
username: guest
####密码
password: guest
###全部采集
sleuth:
sampler:
probability: 1.0
request.getHeader("X-B3-TraceId");
request.getHeader("X-B3-TraceId")+",spanid:"+ request.getHeader("X-B3-SpanId")