簡単な紹介
リクエストがスローダウンしたり、利用できない、どのように我々はすぐにサービス障害ポイントを見つけないときのマイクロサービスアーキテクチャでは、複数のサービス呼び出しの間に相関関係がありますか?リンクトラッキングの実装では、この問題を解決するためにZipkin +のRabbitMQ + ES + Kibanaが達成この紙スルース+です。
春の雲スルース
トレース:システム境界にクライアントからの要求、その後、システム境界に応じてクライアントに返します。
スパン:コールに埋もれた各通話記録は、つまり、「スパン」、整然としたスパン一連のトレースを構成しています。
Zipkin
Zipkinはオープンソースで、Twitterの会社によって収集タイミングデータサービスのための追跡システム、データ収集、保管、検索、ショーを配布しました。リムーバブルデータストレージを提供:インメモリーは、MySQL、カサンドラとElasticsearch。
RabbitMQの
RabbitMQのAMQPは、Erlangの言語を使用して、オープンソースの実装、サーバ側での使いやすさ、拡張性、高可用性の観点から、分散システムにおけるストアアンドフォワードメッセージのために、さまざまなクライアントをサポートし、とてもよくやって。
Elasticsearch
Elasticsearch(ES)は、Luceneのオープンソース、分散、RESTfulなフルテキスト検索エンジン・インターフェースに基づいて構築物です。Elasticsearch又は各フィールドがインデックス付けすることができ、各フィールドのデータを検索することができる分散文書データベースは、ESは、サーバー・ストレージの数百スケールとPBレベルのデータを扱うことができます。大量のデータを検索し、分析し、時間の非常に短い期間で保存することができます。
Kibana
Kibanaは、要約達成分析し、重要なデータのログを検索することができ、Webログ解析LogstashとElasticSearchのための使いやすいインターフェイスを提供することができます。
実現
1、Zipkinサーバー
(公式サイトでも入手できます。https://zipkin.io/ダウンロードJARパッケージを直接)zipkin-サーバプログラムの作成
頼ります
<依存性> <のgroupId> org.springframework.cloud </のgroupId> <たartifactId>ばねクラウドスタータのNetflix、ユーレカクライアント</たartifactId> </依存> <依存性> <のgroupId> io.zipkin.java </ groupId> <たartifactId> zipkin-サーバー</たartifactId> <バージョン> 2.11。8 </バージョン> </依存> <依存性> <のgroupId> io.zipkin.java </のgroupId> <たartifactId> zipkin-AUTOCONFIGURE-UI </たartifactId> <バージョン> 2.11。8 </バージョン> </依存関係> <依存> <groupIdを> io.zipkin.java </ groupIdを> <バージョン> 2.11。8 </バージョン> </依存> <依存性> <のgroupId> io.zipkin.java </のgroupId> <たartifactId> zipkin-AUTOCONFIGURE-ストレージelasticsearch-HTTP </たartifactId> <バージョン> 2.8。4 </バージョン> </依存>
コンフィギュレーション
春: アプリケーション: 名前:zipkin - サーバーの サーバー: ポート:8033 ユーレカ: クライアント: serviceURLの: defaultZoneます。http:// localhostを:8088 /ユーリカ/ インスタンスは: 好む -ip-アドレスを:真の 管理: メトリックス: ウェブ: サーバー: オート -time-リクエスト:偽 zipkin: コレクター: RabbitMQの: アドレス:192.168。233.128 ポート:5672 ユーザー名:zipkin パスワード:zipkin 仮想- ホスト:VH1 キュー:zipkin ストレージ: StorageComponent:elasticsearch タイプ:elasticsearch elasticsearch: ホスト:192.168。233.171:9200 クラスタ:elasticsearch 度:zipkin インデックス -shards:5 索引 -replicas:1
スタートアップクラス
@SpringBootApplication @EnableEurekaClient @EnableZipkinServer パブリック クラスZipkinServerApplication { 公共 静的 ボイドメイン(文字列[]引数){ SpringApplication.run(ZipkinServerApplication。クラス、引数)。 } }
アクセス
2、Zipkinクライアント
頼ります
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-sleuth</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zipkin</artifactId> </dependency>
配置
spring: sleuth: sampler: probability: 1.0 zipkin: sender: type: RABBIT rabbitmq: addresses: 192.168.233.128 port: 5672 username: zipkin password: zipkin virtual-host: vh1
3、测试:
访问zipkin客户端服务,如我本地user-server
查看zipkin服务端
访问Kibana,配置一个index pattern
修改默认时间格式
看一下效果
END
欢迎关注微信公众号:牧码笔记,时时获取最新技术分享。