最新の安定バージョンについては、Spring Cloud Zookeeper 4.3.0 を使用してください! |
クイックスタート
このクイックスタートでは、Spring Cloud Zookeeper を使用してサービス検出と分散構成を説明します。
まず、マシン上で Zookeeper を実行します。その後、それにアクセスし、Spring Cloud Zookeeper でサービスレジストリおよび構成ソースとして使用できます。
ディスカバリクライアントの使用箇所
これらの機能をアプリケーションで使用するには、spring-cloud-zookeeper-core
および spring-cloud-zookeeper-discovery
に依存する Spring Boot アプリケーションとしてアプリケーションを構築できます。依存関係を追加する最も便利な方法は、Spring Boot スターター org.springframework.cloud:spring-cloud-starter-zookeeper-discovery
を使用することです。依存関係管理と spring-boot-starter-parent
を使用することをお勧めします。次の例は、一般的な Maven 構成を示しています。
<project>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>{spring-boot-version}</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
次の例は、一般的な Gradle セットアップを示しています。
plugins {
id 'org.springframework.boot' version ${spring-boot-version}
id 'io.spring.dependency-management' version ${spring-dependency-management-version}
id 'java'
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.cloud:spring-cloud-starter-zookeeper-discovery'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
}
}
使用しているバージョンによっては、プロジェクトで使用する Apache Zookeeper のバージョンを調整する必要がある場合があります。詳細については、Zookeeper セクションのインストールを参照してください。 |
これで、次の HTTP サーバーなどの標準 Spring Boot アプリケーションを作成できます。
@SpringBootApplication @RestController public class Application { @GetMapping("/") public String home() { return "Hello World!"; } public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
この HTTP サーバーが実行されると、デフォルトのローカルポート (2181) で実行される Zookeeper に接続します。起動動作を変更するには、次の例に示すように、application.properties
を使用して Zookeeper の場所を変更します。
spring: cloud: zookeeper: connect-string: localhost:2181
次の例に示すように、DiscoveryClient
、@LoadBalanced RestTemplate
、または @LoadBalanced WebClient.Builder
を使用して Zookeeper からサービスとインスタンスのデータを取得できるようになりました。
@Autowired
private DiscoveryClient discoveryClient;
public String serviceUrl() {
List<ServiceInstance> list = discoveryClient.getInstances("STORES");
if (list != null && list.size() > 0 ) {
return list.get(0).getUri().toString();
}
return null;
}
分散構成の使用箇所
これらの機能をアプリケーションで使用するには、spring-cloud-zookeeper-core
および spring-cloud-zookeeper-config
に依存する Spring Boot アプリケーションとしてアプリケーションを構築できます。依存関係を追加する最も便利な方法は、Spring Boot スターター org.springframework.cloud:spring-cloud-starter-zookeeper-config
を使用することです。依存関係管理と spring-boot-starter-parent
を使用することをお勧めします。次の例は、一般的な Maven 構成を示しています。
<project>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>{spring-boot-version}</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zookeeper-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
次の例は、一般的な Gradle セットアップを示しています。
plugins {
id 'org.springframework.boot' version ${spring-boot-version}
id 'io.spring.dependency-management' version ${spring-dependency-management-version}
id 'java'
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.cloud:spring-cloud-starter-zookeeper-config'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
}
}
使用しているバージョンによっては、プロジェクトで使用する Apache Zookeeper のバージョンを調整する必要がある場合があります。詳細については、Zookeeper セクションのインストールを参照してください。 |
これで、次の HTTP サーバーなどの標準 Spring Boot アプリケーションを作成できます。
@SpringBootApplication @RestController public class Application { @GetMapping("/") public String home() { return "Hello World!"; } public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
アプリケーションは、Zookeeper から構成データを取得します。
Spring Cloud Zookeeper Config を使用する場合、Zookeeper にバインドするには spring.config.import プロパティを設定する必要があります。詳細については、Spring Boot 設定データのインポートセクションを参照してください。 |