私の連絡先情報
郵便メール:
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
マイクロサービス アーキテクチャでは、サービス間の呼び出しリンクが非常に複雑になる可能性があるため、問題の特定とパフォーマンスの最適化が困難になります。この問題を解決するには、分散トレース システムを使用して、マイクロサービス アーキテクチャ全体のリクエスト リンクを監視および診断します。 Zipkin と Spring Cloud Sleuth は、この目標の達成に役立つ 2 つの非常に人気のあるツールです。
マイクロサービス アーキテクチャでは、ユーザーのリクエストが複数のサービスによって処理される場合があります。分散トレース システムがないと、問題が発生したときに、どのサービスに問題があるのか、どのサービス呼び出しリンクに問題があるのかを判断することが困難になります。分散トレーシング システムは次のことに役立ちます。
以下では、簡単な例を使用して、Zipkin と Spring Cloud Sleuth を Spring Boot アプリケーションに統合する方法を示します。
まず、Spring Boot プロジェクトを作成する必要があります。 Spring Initializr を使用すると、プロジェクトをすばやく作成し、次の依存関係を追加できます。
- <dependencies>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</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>
- </dependencies>
存在するapplication.properties
次の構成をファイルに追加します。
- spring.application.name=my-service
- server.port=8080
-
- spring.zipkin.base-url=http://localhost:9411
- spring.sleuth.sampler.probability=1.0
spring.zipkin.base-url
Zipkin サーバーのアドレスを指定します。spring.sleuth.sampler.probability
すべてのトレース データをログに記録するには、1.0 に設定します。サービス呼び出しをシミュレートするための単純な REST コントローラーを作成します。
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.RestController;
- import org.springframework.web.client.RestTemplate;
-
- @RestController
- public class MyController {
-
- private final RestTemplate restTemplate;
-
- public MyController(RestTemplate restTemplate) {
- this.restTemplate = restTemplate;
- }
-
- @GetMapping("/hello")
- public String hello() {
- String response = restTemplate.getForObject("http://localhost:8081/greeting", String.class);
- return "Hello, " + response;
- }
- }
この例では、/hello
エンドポイントは別のサービスを呼び出します/greeting
終点。
Docker を介して Zipkin サーバーをすぐに起動できます。
docker run -d -p 9411:9411 openzipkin/zipkin
Spring Boot アプリケーションを起動し、次のサイトにアクセスします。http://localhost:8080/hello
終点。この時点で、Spring Cloud Sleuth はリクエストのトレース情報を自動的に生成し、この情報を Zipkin サーバーに送信します。
ブラウザを開いてアクセスしてくださいhttp://localhost:9411
、ZipkinのWebインターフェイスが表示されます。ここでは、各リクエストにかかった時間、通話リンクなどを含むすべての追跡情報を表示できます。
Zipkin と Spring Cloud Sleuth を統合することで、マイクロサービス アーキテクチャで分散トレースを簡単に実装できます。これは、問題を迅速に特定して解決するだけでなく、システムのパフォーマンスを最適化するのにも役立ちます。このブログが、これら 2 つの強力なツールの理解と使用に役立つことを願っています。