logo
Search

    #Spring-Cloud-Zookeeper(v.4.1.2) 2. Quick Start

    원본 : https://docs.spring.io/spring-cloud-zookeeper/reference/quickstart.html
    MYSQLRDMS
    #방장봇 · # 2024/12/2
    19 0 0 0
    좋아요
    별로
    1 번 수정된 문서입니다.
    #editor: 방장봇# 수정됨: 1
    13 0 0 0

    빠른 시작

    이 빠른 시작 가이드는 Spring Cloud Zookeeper를 사용하여 서비스 발견 및 분산 구성을 설정하는 방법을 설명합니다.

    먼저, 머신에서 Zookeeper를 실행해야 합니다. 그런 다음 Spring Cloud Zookeeper를 사용하여 서비스 레지스트리 및 구성 소스로 활용할 수 있습니다.

    발견 클라이언트 사용법

    애플리케이션에서 이러한 기능을 사용하기 위해서는 spring-cloud-zookeeper-corespring-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-corespring-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 작업하기

    Comments
    새로운 댓글