JAVA/SPRING

Spring cloud config

girin_dev 2022. 2. 3. 22:20
728x90
λ°˜μ‘ν˜•
 
πŸ₯• spring clud config == μ„€μ • νŒŒμΌμ„ μ™ΈλΆ€λ‘œ 뢄리.

 

좜처 : https://madplay.github.io/post/introduction-to-spring-cloud-config
 μ‚¬μš©μžμ˜ μš”μ²­μ„ λ°›μŒ - > μ‚¬μš©μžμ˜ 개인적인 μ…‹νŒ…λ„ μ„€μ • κ°€λŠ₯은 함.

 

πŸ˜’  μ‚¬μš©μžμ˜ μš”μ²­μ΄ μ•„λ‹Œ 상황

 

   -> μ„œλ²„μ˜ μž‘λ™ config 섀정에 λŒ€ν•œ μˆ˜μ • μš”μ²­

 

   -> μ„œλ²„ ꡬ동 μ‹œ ν•„μš”ν•œ config / xml 파일 / json νŒŒμΌλ“€μ˜ 변경사항 μ„€μ • 반영.
 

 

** μ‚¬μš©μž / μ„œλ²„ / κ΄€λ¦¬μž 의 μš”μ²­μ΄ μ‹€μ‹œκ°„μœΌλ‘œ κΉƒν—ˆλΈŒ 등에 반영. 
 
과정이 μˆ˜ν–‰λ˜κ³  client / application μ—μ„œ serverκ°€ λ³€κ²½ /  μ‹ κ·œ / μˆ˜μ •ν•œ μ„€μ •μ˜ κ²°κ³Όκ°’μœΌλ‘œ
μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μž‘λ™ν•΄μ•Ό μ˜λ―Έκ°€ 있음.
 

 

 

 

 

 

SERVER


 

spring.cloud.config.server.git.url의 μ£Όμ†ŒλŠ” κΉƒν—ˆλΈŒμ— μžˆλŠ” μ‹€μ œ 파일이 μœ„μΉ˜ν•œ μ£Όμ†Œμ—¬μ•Ό 함. ν•˜μœ„ λ””λ ‰ν† λ¦¬μ˜ λŽμŠ€λŠ” ν¬ν•¨λ˜μ§€ μ•Šμ€ μƒν™©μž„.

 

build.gradle μ„€μ • : :

μ„œλ²„ μ‹€ν–‰μ‹œ GIT에 μžˆλŠ” 파일의 μœ„μΉ˜λ₯Ό μ°Ύμ•˜λ‹€λ©΄!

μ½˜μ†”μ— μœ„μ™€ 같은 둜그λ₯Ό 찍게 됨. adding property λ₯Ό ν™•μΈν•΄λ΄…μ‹œλ‹€.

 

 

 

 

 

 

 

CLIENT


 

 

접속 

 

@Value 유의 spring lib import ν•„μš” **

 

 

 

@RefreshScope 변경사항을 받아와야 ν•˜λ―€λ‘œ, 

 

ν΄λΌμ΄μ–ΈνŠΈλ₯Ό 배포 μ‹€ν–‰ ν›„, 

 

controller 에 맀칭된 μ£Όμ†ŒμΈ 

 

 

: localhost:8081/test 둜 μ ‘μ†ν•œλ‹€λ©΄, 

μž‘μ§€λ§Œ 잘 보인닀.

 

* bootstrap.yml
 
μŠ€ν”„λ§ λΆ€νŠΈ 2.4 버젼 μ΄ν›„μ—λŠ” μœ„μ˜ μ„€μ • νŒŒμΌμ„ μ“°μ§€ μ•Šμ„ 수 있음.

 
bootstrap.yml 이 application 섀정에 λΉ„ν•΄ μ•žμ„œμ„œ μ‹€ν–‰λœλ‹€.

 

server.port == clientκ°€ 싀행될 μ„œλ²„ 포트 
spring . cloud . config 의 μ£Όμ†ŒλŠ”  8080 --> cloud config server κ°€ μ‹€ν–‰λ˜λŠ” μ£Όμ†Œ. 
μœ„μ˜ spring.application . name  = ν΄λΌμš°λ“œ 컨피그 μ„œλ²„μ˜ μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ΄λ¦„μž„  

 
 
application.yml 파일의 url에 κΉƒν—ˆλΈŒμ˜ μ£Όμ†Œλ₯Ό μ μŠ΅λ‹ˆλ‹€.

 

μ„œλ²„λ₯Ό μ˜€ν”ˆν•˜κ³  

μ—¬κΈ° μ£Όμ†Œ X

λ‹€μ‹œ μ ‘μ†ν•΄λ΄…λ‹ˆλ‹€.  ( ν˜„μž¬ ν΄λΌμš°λ“œ 컨피그 μ„œλ²„λŠ” master branchμž„μ— 유의 )
μ•„λž˜μ˜ who am i 값이 λ‚˜μ˜€λŠ” 것을 확인 ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 
 
 
url μ£Όμ†Œμ˜ μ°¨μ΄λŠ”

파일의 이름이 #{application-name }-{profile}인데 이λ₯Ό url μ—μ„œλŠ” applicationname/profile 둜 처리
λ§žλŠ” μ£Όμ†Œλ‘œ 접속 ν•  κ²½μš°μ—λŠ” μ„œλ²„μ˜ λ‘œκ·Έμ—  Adding property 값이 λ‚˜μ˜΅λ‹ˆλ‹€.

λ³€κ²½ν•œ 값도 λΆˆλŸ¬μ˜€λŠ” μ§€ 확인

 
κΉƒν—ˆλΈŒμ˜ config 파일의 λ‚΄μš©μ΄ λ°”λ€Œμ—ˆκ±°λ‚˜ refreshκ°€ ν•„μš”ν•˜λ‹€λ©΄,  post λ°©μ‹μœΌλ‘œ config client 재 기동을 μš”μ²­.

 

 

clientκ°€ μ œλŒ€λ‘œ POST μš”μ²­μ„ λ°›μ•˜λ‹€λ©΄ μž¬κΈ°λ™ 처리됨.
 
    * Intelij의 ν΄λΌμ΄μ–ΈνŠΈ μž¬κΈ°λ™ 둜그.

μž¬κΈ°λ™ 이후 μ •μƒμ μœΌλ‘œ μ„€μ • 파일의 변경값을 λ°›μ•„μ˜¨ 것을 확인 ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

320x100
λ°˜μ‘ν˜•