開始して直接コピーするだけで、マイクロサービスを構築できます(Hoxton.SR8)2020.8.28がリリースされ、SpringCloudによって構築された記事が整理されています。乾物をお見逃しなく
-
SpringCloudマイクロサービスはXiaobai(Hoxton.SR8)でも使用できます(1)Eureka |サービスの登録と検出
-
Xiaobaiが利用できるSpringCloudマイクロサービス(Hoxton.SR8)(3)Feign | Service Consumers
-
SpringCloudマイクロサービスXiaobaiも利用できます(Hoxton.SR8)(4)Hystrix | Circuit Breaker
-
SpringCloudマイクロサービスXiaobaiも利用できます(Hoxton.SR8)(5)ダッシュボード/タービン|サーキットブレーカーモニタリング
-
SpringCloudマイクロサービスXiaobaiも(Hoxton.SR8)(6)Zuul | ServiceGatewayを利用できます
-
SpringCloudマイクロサービスXiaobaiは(Hoxton.SR8)(7)ゲートウェイ|サービスゲートウェイも利用できます
-
SpringCloudマイクロサービスXiaobaiは(Hoxton.SR8)(8)Sleuth | Service LinkTrackingも利用できます
概要
Spring Cloud Sleuthは、分散システム内のサービス間の呼び出しを追跡するためのツールであり、要求の呼び出しプロセスを視覚的に示すことができます。私たちのシステムがますます大きくなるにつれて、さまざまなサービス間の呼び出し関係はますます複雑になります。クライアントがリクエストを開始すると、リクエストが複数のサービスを通過した後、最終的に結果が返されます。渡された各サービスが遅延またはエラーになり、リクエストが失敗する場合があります。現時点では、要求されたサービスリンクを分類して問題を解決するために、リンク追跡ツールを要求する必要があります。
Sleuthには、始めるために必要なものがすべて揃っています。これには、追跡データを報告する場所(スパン)、保持するトラックの数(追跡)、リモートフィールド(バッグ)が送信されるかどうか、追跡するライブラリが含まれます。Sleuthは、分散追跡システムZipkinへのこれらの要求の時間を記録するようにこれらのアプリケーションを構成しました。1つのサービスの時間や他のサービスの待機時間など、UIの視覚化の遅延を追跡します。
1.リンク追跡サポートを追加します
1.1サービスへの参加:ユーザーサービス、偽サービス、リボンサービス
上記の3つのサービスに依存関係を追加します
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
1.2 yml addzipkin-サーバーアクセスアドレス
spring:
application:
name: feign-service
zipkin:
base-url: http://localhost:9411
sender:
type: web
#设置Sleuth的抽样收集概率,1=100%,因为我们目前是测试环境所以用1
sleuth:
sampler:
probability: 1
2.リンク追跡サービスセンター(zipkin-server)を構築します
2.1構築方法
- docker
- java -jar
- githubソースビルド
- 自分でspringbootをビルドするための依存関係を追加します(公式には推奨されません)
ビルドするjavaメソッドを選択しました。dockerbuildメソッドも非常に高速ですが、Windowsコンピューターにdockerがインストールされていないため、最初にjava-jarメソッドを使用して関数を表示しましょう。現在
ダウンロードしている最新バージョンは2.21.7ダウンロードリンクです:https: //repo1.maven.org/maven2/io/zipkin/zipkin-server/2.21.7/zipkin-server-2.21.7-exec.jar
以前最新バージョンを入手するには、公式にアクセスしてください
2.2ジプキンを開始する
2.2.1cmdを開いて起動コマンドを実行します
java -jar zipkin-server-2.21.7-exec.jar
2.2.2正常な起動
ブラウザにアクセスします:http://127.0.0.1:9411
3.サービステストコール
feign-serviceまたはribbon-serviceを介してuser-serviceを呼び出し、zipkinのサービスページを更新します
4.zipkinデータの永続性
リンク情報を保存したい場合、Zipkinの再起動後にリンクデータが消えることはありません。これは、後のクエリや場所の問題に便利です。
4.1mysql
数千万のデータなど、データ量が非常に多い場合、クエリ効率の問題が発生します。政府による推奨ではありません。移行に使用できます。Elasticsearchは後で使用できます。
4.1.1sqlファイルのダウンロード
sqlファイル:https://github.com/openzipkin/zipkin/blob/master/zipkin-storage/mysql-v1/src/main/resources/mysql.sql
4.1.2新しいデータベース
4.1.3sqlファイルを実行する
CREATE TABLE IF NOT EXISTS zipkin_spans (
`trace_id_high` BIGINT NOT NULL DEFAULT 0 COMMENT 'If non zero, this means the trace uses 128 bit traceIds instead of 64 bit',
`trace_id` BIGINT NOT NULL,
`id` BIGINT NOT NULL,
`name` VARCHAR(255) NOT NULL,
`remote_service_name` VARCHAR(255),
`parent_id` BIGINT,
`debug` BIT(1),
`start_ts` BIGINT COMMENT 'Span.timestamp(): epoch micros used for endTs query and to implement TTL',
`duration` BIGINT COMMENT 'Span.duration(): micros used for minDuration and maxDuration query',
PRIMARY KEY (`trace_id_high`, `trace_id`, `id`)
) ENGINE=InnoDB ROW_FORMAT=COMPRESSED CHARACTER SET=utf8 COLLATE utf8_general_ci;
ALTER TABLE zipkin_spans ADD INDEX(`trace_id_high`, `trace_id`) COMMENT 'for getTracesByIds';
ALTER TABLE zipkin_spans ADD INDEX(`name`) COMMENT 'for getTraces and getSpanNames';
ALTER TABLE zipkin_spans ADD INDEX(`remote_service_name`) COMMENT 'for getTraces and getRemoteServiceNames';
ALTER TABLE zipkin_spans ADD INDEX(`start_ts`) COMMENT 'for getTraces ordering and range';
CREATE TABLE IF NOT EXISTS zipkin_annotations (
`trace_id_high` BIGINT NOT NULL DEFAULT 0 COMMENT 'If non zero, this means the trace uses 128 bit traceIds instead of 64 bit',
`trace_id` BIGINT NOT NULL COMMENT 'coincides with zipkin_spans.trace_id',
`span_id` BIGINT NOT NULL COMMENT 'coincides with zipkin_spans.id',
`a_key` VARCHAR(255) NOT NULL COMMENT 'BinaryAnnotation.key or Annotation.value if type == -1',
`a_value` BLOB COMMENT 'BinaryAnnotation.value(), which must be smaller than 64KB',
`a_type` INT NOT NULL COMMENT 'BinaryAnnotation.type() or -1 if Annotation',
`a_timestamp` BIGINT COMMENT 'Used to implement TTL; Annotation.timestamp or zipkin_spans.timestamp',
`endpoint_ipv4` INT COMMENT 'Null when Binary/Annotation.endpoint is null',
`endpoint_ipv6` BINARY(16) COMMENT 'Null when Binary/Annotation.endpoint is null, or no IPv6 address',
`endpoint_port` SMALLINT COMMENT 'Null when Binary/Annotation.endpoint is null',
`endpoint_service_name` VARCHAR(255) COMMENT 'Null when Binary/Annotation.endpoint is null'
) ENGINE=InnoDB ROW_FORMAT=COMPRESSED CHARACTER SET=utf8 COLLATE utf8_general_ci;
ALTER TABLE zipkin_annotations ADD UNIQUE KEY(`trace_id_high`, `trace_id`, `span_id`, `a_key`, `a_timestamp`) COMMENT 'Ignore insert on duplicate';
ALTER TABLE zipkin_annotations ADD INDEX(`trace_id_high`, `trace_id`, `span_id`) COMMENT 'for joining with zipkin_spans';
ALTER TABLE zipkin_annotations ADD INDEX(`trace_id_high`, `trace_id`) COMMENT 'for getTraces/ByIds';
ALTER TABLE zipkin_annotations ADD INDEX(`endpoint_service_name`) COMMENT 'for getTraces and getServiceNames';
ALTER TABLE zipkin_annotations ADD INDEX(`a_type`) COMMENT 'for getTraces and autocomplete values';
ALTER TABLE zipkin_annotations ADD INDEX(`a_key`) COMMENT 'for getTraces and autocomplete values';
ALTER TABLE zipkin_annotations ADD INDEX(`trace_id`, `span_id`, `a_key`) COMMENT 'for dependencies job';
CREATE TABLE IF NOT EXISTS zipkin_dependencies (
`day` DATE NOT NULL,
`parent` VARCHAR(255) NOT NULL,
`child` VARCHAR(255) NOT NULL,
`call_count` BIGINT,
`error_count` BIGINT,
PRIMARY KEY (`day`, `parent`, `child`)
) ENGINE=InnoDB ROW_FORMAT=COMPRESSED CHARACTER SET=utf8 COLLATE utf8_general_ci;
4.1.4Zipkinを再起動します
java -jar zipkin-server-2.21.7-exec.jar --STORAGE_TYPE=mysql --MYSQL_HOST=localhost --MYSQL_TCP_PORT=3306 --MYSQL_DB=zipkin --MYSQL_USER=root --MYSQL_PASS=
4.1.5インターフェイスコールテストを再度実行します
4.2 Elasticsearch
4.2.1ダウンロード
バージョンリンク:https://www.elastic.co/cn/downloads/past-releases#elasticsearch
ダウンロードリンク:https://www.elastic.co/cn/downloads/past-releases/elasticsearch-7-9-2
ダウンロード後、D:\ elasticsearch-7.9.2 \ binを解凍し
、binディレクトリに入り、赤い丸でマークされたプログラムをダブルクリックします。
4.2.2elasticsearchを開始します
.\elasticsearch.bat
テスト開始:http:// localhost:9200 /?pretty
4.2.3管理ページ
ここではインストールは行われず、エルクのブログ投稿は後で追加されます
4.2.4zipkinの再起動
java -jar zipkin-server-2.21.7-exec.jar --STORAGE_TYPE=elasticsearch --ES_HOSTS=localhost:9200
5.その他の構成
https://github.com/openzipkin/zipkin/tree/master/zipkin-server#elasticsearch-storage