ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Config Server 구축하기
    Spring Cloud (MSA) 2022. 9. 14. 17:15

    Spring Cloud Config Server란

    • 중앙 집중식 서비스로 애플리케이션 구성 데이터 관리를 담당하고 애플리케이션 데이터를 마이크로 서비스와 완전히 분리하는 역할을 담당한다.
    • 각각의 마이크로 서비스 배포 대상 환경에 맞게 구분하여 적용이 가능하다.
    • 설정이 변경되었을 때 서버의 재시작 없이 동적으로 적용된다.

    설정 파일 GitHub

    GitHub에 올라가 있는 파일 중 venh(application:name)-dev(profiles:active).yml를 예를 들어 설명하면 이 파일명은 마이크로 서비스 Properties Source에서 아래처럼 설정되어 사용된다.  지금 우리가 만드는 것은 마이크로 서비스의 config:import에 설정되는 Config Server를 만드는 것이다. 이러한 설정을 통해 마이크로서비스는 Config Server가 제공하는 설정들을 제공받는다.

     

    spring: 
      application:
        name: venh
      profiles:
        active: dev
      config: 
        import: optional:configserver:http://localhost:8888

     

     

    📌 프로젝트 설정 시작하기

    build.gradle

    plugins {
        id 'org.springframework.boot'
        version '2.5.6'
        id 'io.spring.dependency-management'
        version '1.0.11.RELEASE'
        id 'java'
    }
    
    group = 'com.venh.msa.config'
    version = '0.0.1-SNAPSHOT'
    sourceCompatibility = '1.8'
    
    repositories {
        mavenCentral()
    }
    
    ext {
        set('springCloudVersion', "2020.0.4")
    }
    
    dependencies {
        implementation 'org.springframework.cloud:spring-cloud-config-server'
        testImplementation 'org.springframework.boot:spring-boot-starter-test'
    }
    
    dependencyManagement {
        imports {
            mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
        }
    }
    
    test {
        useJUnitPlatform()
    }

     

    application.yml

    server: 
      port: 8888 
    spring: 
      cloud: 
        config: 
          server: 
            git: 
              uri: https://github.com/conf312/venh-msa-config.git
              #username: 유저명
              #password: token

     

    Config Server 설정

    @EnableConfigServer를 Application 클래스에 추가한다.

     

    @EnableConfigServer
    @SpringBootApplication
    public class VenhMsaConfigServerApplication

     

    테스트

    GitHub Repository에 올려놓은 설정 파일에 맞게 각각 호출해본다.

     

    http://localhost:8888/venh/dev를 호출하면 GitHub에 venh-dev.yml이 호출된다.

    {"name":"venh","profiles":["dev"],"label":null,"version":"cd49b9e89fdc5cfc582c890dbf259c8eb4ef73c7","state":null,"propertySources":[{"name":"https://github.com/conf312/venh-msa-config.git/file:C:\\Users\\conf3\\AppData\\Local\\Temp\\config-repo-2743901684204068862\\venh-dev.yml","source":{"venh.test":"venh-dev config test"}}]}

     

    http://localhost:8888/venh/prod를 호출하면 GitHub에 venh-prod.yml이 호출된다.

    {"name":"venh","profiles":["prod"],"label":null,"version":"cd49b9e89fdc5cfc582c890dbf259c8eb4ef73c7","state":null,"propertySources":[{"name":"https://github.com/conf312/venh-msa-config.git/file:C:\\Users\\conf3\\AppData\\Local\\Temp\\config-repo-2743901684204068862\\venh-prod.yml","source":{"venh.test":"venh-prod config test"}}]}

     

    GitHub

    Reference

    'Spring Cloud (MSA)' 카테고리의 다른 글

    Config Client 구축하기  (0) 2022.09.26

    댓글

Designed by Tistory.