티스토리 뷰

지금까지 User-Service를 제작했는데 이제 Config Server 와 연동을 하려 합니다. 

여기서부터는 새로 시작한다는 마음으로 지금까지 작성된 프로젝트를 공유합니다.

다만 저번 시간에 말씀드린 Config 의 기본설정을 완료하셨다는 전제로 진행하겠습니다.


#프로젝트 파일

spring_cloud.7z
0.10MB

한 가지 주의하셔야할건 spring_cloud는 Work_Space 개념입니다. spring_cloud는 프로젝트가 아닙니다!

그리고 IntelliJ 를 활용한다는 기준으로 각 service는 하나의 창에서 하나씩 실행시켜아 합니다. 

STS나 Eclipse와는 다르게 Intellij 는 하나의 프로젝트는 하나의 Window라는 개념이라는 점 숙지 바랍니다.


#개요

이번 시간에 진행할 내용은, Config-Server의 정보를 User-service가 이용 할 수 있도록 설정하는 과정입니다. 

token.secret 값을 ggpark_token으로 설정했었는데, 해당 값은 User-Service가 읽을 수 있을지 테스트하는 과정입니다.

해당 과정이 성공하면 ggpark_token을 필요한 서비스마다 다 일일히 설정할 필요 없어집니다. 편의성이나 관리 측면에서

굉장한 이득을 볼 수 있는거에요! 


#pom.xml 

가장 먼저 선행되어야 하는 과정은 늘 그렇듯이 필요한 의존성을 주입하는 과정입니다. 

먼저 첨부된 프로젝트에서 User-Service를 조금 수정할 예정입니다. 해당 프로젝트의 Pom.xml에 들어가주세요 

그리고 2개의 Dependency를 추가해줄게요.

<!-- Config Server와 연동하기 위한 Dependency -->
<dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-config</artifactId>
</dependency>

<!-- bootstrap Server 활성화를 위한 Dependency -->
<dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>

#application.yml 

그리고 기존에 User-Service에서 지정해둔 token정보를 주석처리 해줄게요.

#token:
#   expiration_time: 86400000
#   secret: ggpark_token

 


#bootstrap.yml 

다음으로는 해당 위치에 bootstrap.yml 파일을 만들 예정입니다. 

bootstrap.yml 파일에 다음과 같이 입력해주세요.

uri는 Config-Server 그리고 Name은 yml파일의 이름입니다.

spring:
   cloud:
      config:
         uri: http://127.0.0.1:8888
         name: ecommerce

#UserController.java

테스트를 위해서, UserController를 수정하려고 합니다.

기존에는 Port만 체크했다면 이번엔 local Server , Server 의 Port정보와 Token의 정보들을 출력하고자 합니다. 

/health_check를 아래와 같이 바꿔주세요.

    @GetMapping("/health_check")
    public String status(){
        return String.format("It's Working in User Service"
                    + ",port(local.server.port)=" + env.getProperty("local.server.port")
                    + ",port(server.port)=" + env.getProperty("server.port")
                    + ",token secret =" + env.getProperty("token.secret")
                    + ",token expiration time=" + env.getProperty("token.expiration_time")
        );

수정 후 ecommerce,user-service,config-service 를 모두 실행 시킨 뒤 

user-service의 포트에서 health_check를 해보겠습니다. 다음과 같은 정보가 출력 되나요?

 

꺄아아아악

신기하지 않나요? 분명 application.yml 에서 토큰 정보를 주석 처리했는데, token정보를 잘 찾아서 가져옵니다. 

이게 Config-Server의 장점입니다... 지금은 Token은 정보 뿐이지만, 계속 서비스가 증가되면서 중복되는 서버설정이 

많아진다면 Config-Server는 더더욱 빛을 발합니다.  다음 시간에는 조금 더 고도화하는 작업을 진행하겠습니다.

감사합니다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함