빠른 시작
이 빠른 시작 가이드는 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/> <!-
- 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 설정을 보여줍니다.
build.gradle
plugins {
id 'org.springframework.boot' version '2.5.4'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
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:2020.0.3"
}
}
사용 중인 버전에 따라 프로젝트에서 사용하는 Zookeeper 버전을 조정해야 할 수 있습니다. 이에 대한 자세한 내용은 Zookeeper 설치 문서에서 확인할 수 있습니다.
이제 다음과 같은 표준 스프링 부트 애플리케이션을 생성할 수 있습니다:
@SpringBootApplication
@RestController
public class Application {
@GetMapping("/")
public String home() {
return "Hello World!";
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
이 HTTP 서버가 실행되면 기본 로컬 포트(8080)에서 실행 중인 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
에 의존해야 합니다. 의존성을 추가하는 가장 쉬운 방법은 스프링 부트 스타터를 사용하는 것입니다: org.springframework.cloud:spring-cloud-starter-zookeeper-config
. 의존성 관리를 사용하는 것을 권장합니다. 다음 예는 전형적인 Maven 설정을 보여줍니다:
pom.xml
org.springframework.boot Spring Boot Starter Parent {spring-boot-version} org.springframework.cloud Spring Cloud Starter Zookeeper Config org.springframework.boot Spring Boot Starter Test test org.springframework.cloud Spring Cloud Dependencies ${spring-cloud.version} pom import org.springframework.boot Spring Boot Maven Plugin다음 예시는 일반적인 Gradle 설정을 보여줍니다.
build.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}"
}
}
버전에 따라 프로젝트에서 사용하는 Zookeeper 버전을 조정해야 할 수 있습니다. 이에 대한 자세한 내용은 Zookeeper installation section에서 확인할 수 있습니다.
이제 다음과 같은 기본 Spring Boot application을 생성할 수 있습니다:
@SpringBootApplication
@RestController
public class MyApplication {
@GetMapping("/")
public String home() {
return "Hello, World!";
}
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
이 애플리케이션은 Zookeeper에서 configuration data를 가져옵니다.
Spring Cloud Zookeeper configuration를 사용하는 경우, Zookeeper에 binding하기 위해 spring.config.import
property를 설정해야 합니다. 이에 대한 자세한 내용은 Spring Boot Configuration Data Import section에서 확인할 수 있습니다.
Introduction 소개
Working with Zookeeper Zookeeper 작업하기