Java を使用して Spring Cloud Netflix に基づくマイクロサービス アーキテクチャを開発する方法
概要:
マイクロサービス アーキテクチャの人気に伴い、Spring Cloud Netflix は Java になりました。開発者が効率的でスケーラブルで信頼性の高いマイクロサービス アーキテクチャを構築するために推奨されるフレームワークの 1 つ。この記事では、Java を使用して Spring Cloud Netflix に基づくマイクロサービス アーキテクチャを開発する方法を紹介します。これには、Eureka サービスの登録と検出、リボン クライアントの負荷分散、Feign 宣言型サービスの呼び出し、Hystrix サービスのフォールト トレランス、その他の主要コンポーネントと特定のコードが含まれます。例。
ステップ 1: エンジニアリング環境をセットアップする
まず、Maven プロジェクトを作成し、Spring Cloud の対応する依存関係を追加します。 pom.xml ファイルに、次の依存関係を追加します。
<dependencies> <!-- Spring Cloud --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Greenwich.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> <!-- Eureka Server --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> <!-- Eureka Client --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <!-- Ribbon --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-ribbon</artifactId> </dependency> <!-- Feign --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> <!-- Hystrix --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix</artifactId> </dependency> </dependencies>
ステップ 2: Eureka サービスの登録および検出センターを作成する@EnableEurekaServer
アノテーションを Spring Boot スタートアップ クラスに追加します。 Eureka Server の機能を有効にします。コード例は次のとおりです。
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; @SpringBootApplication @EnableEurekaServer public class EurekaServerApplication { public static void main(String[] args) { SpringApplication.run(EurekaServerApplication.class, args); } }
ステップ 3: Eureka クライアントの作成
#@EnableDiscoveryClient アノテーションを Spring Boot スタートアップ クラスに追加して、アプリケーションを Eureka クライアントとして登録します。コード例は次のとおりです。
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; @SpringBootApplication @EnableDiscoveryClient public class EurekaClientApplication { public static void main(String[] args) { SpringApplication.run(EurekaClientApplication.class, args); } }
@LoadBalanced 注釈を使用して、リボン クライアントの負荷分散ポリシーを有効にします。コード例は次のとおりです。
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.loadbalancer.LoadBalanced; import org.springframework.context.annotation.Bean; import org.springframework.web.client.RestTemplate; @SpringBootApplication public class RibbonApplication { public static void main(String[] args) { SpringApplication.run(RibbonApplication.class, args); } @Bean @LoadBalanced public RestTemplate restTemplate() { return new RestTemplate(); } }
@EnableFeignClients アノテーションを使用して、Feign 宣言型サービス呼び出し関数を有効にします。コード例は次のとおりです。
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.openfeign.EnableFeignClients; @SpringBootApplication @EnableFeignClients public class FeignApplication { public static void main(String[] args) { SpringApplication.run(FeignApplication.class, args); } }
@EnableHystrix アノテーションを使用して、Hystrix サービス フォールト トレランス機能を有効にします。コード例は次のとおりです。
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.hystrix.EnableHystrix; @SpringBootApplication @EnableHystrix public class HystrixApplication { public static void main(String[] args) { SpringApplication.run(HystrixApplication.class, args); } }
以上がJava を使用して Spring Cloud Netflix に基づくマイクロサービス アーキテクチャを開発する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。