티스토리 뷰
- 해당 포스트는 전에 진행한 Config -Service 에서 이어집니다.
- 또한 해당 포스트는 인프런 강좌 Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)를 참조했습니다.
# Profiles?
yml File을 읽을 때 Profiles를 설정해주면, 각각 의 서비스에 서로 다른 Yml을 제공해줄 수 있습니다.
백번의 말 보다는 직접 해보는게 더 와닿을 것이라 생각이 드니 바로 시작할게요!
가장 먼저 진행 할 것은 기존에 작성한 ecommerce.yml 파일을 복사해서 3개로 늘려주세요
제목 형태는 application을 Default로 두고 뒤에 성질을 알 수 있도록 dev와 prod를 붙혔습니다.
#ecommerce.yml
token:
expiration_time: 86400000
secret: ggpark_token_changed
gateway:
ip: 0.0.0.0
#ecommerce-dev.yml
token:
expiration_time: 86400000
secret: ggpark_token_dev
gateway:
ip: 0.0.0.0
#ecommerce-prod.yml
token:
expiration_time: 86400000
secret: ggpark_token_prod
gateway:
ip: 0.0.0.0
secret값도 각 yml 파일에 맞게 수정해줬습니다.
#Cmd
파일 추가 후엔 commit도 잊지 말고 진행 해줄게요.
일일히 진행할 필요없이 . 을 입력하면 현재 위치에 있는 모든 파일을 add 할 수 있습니다.
git add .
git commit -m "changed the yaml file"
다음으로는 profile을 활성화 시키기 위해서 각 서비스의 Bootstrap.yml 파일을 수정해줘야 합니다.
#Bootstrap.yml ( User-Service )
spring:
cloud:
config:
uri: http://127.0.0.1:8888
name: ecommerce
profiles:
active: dev
dev Profile 추가
#Bootstrap.yml ( Gateway-Service )
spring:
cloud:
config:
uri: http://127.0.0.1:8888
name: ecommerce
profiles:
active: prod
prod Profile 추가
#Test Case 1
다음으로는 이어서 바로 테스트를 진행해보겠습니다. 구동이 필요한 서비스로는
Ecommerce (EurekaServer) , UserService , ApigateWay Service , Config Server 가 있습니다.
1. 회원 등록
2. 로그인
로그인 작업 시 token 값을 복사하는 것 기억해주세요.
3. 토큰 검증
마지막으로 health_check를 통해서 바뀐 토큰 정보를 확인해볼게요. Bearer Token을 체크 하는 것도 잊지말아주세요!
????
왜 안되는 걸까요? 이상하게도 401 에러가 발생합니다. 토큰 정보를 입력했는데 왜 인증정보에서 에러가 나는 걸까요?
User-Service와 Gateway의 토큰 정보가 다르면 어떻게 될까요? 토큰 생성할때는 User-Service를 참조하고, 토큰 인증 시 Gateway의 정보를 참조한다면, 서로 다른 토큰으로 인해서 제대로 인증이 되지 않습니다. 다만, 서로 다른 프로필을 참조하고 있음을 알기 위해서 위와 같이 코드를 작성했습니다. 그럼 이제 다시 프로필을 수정해줍니다.
#Bootstrap.yml ( Gateway-Service )
spring:
cloud:
config:
uri: http://127.0.0.1:8888
name: ecommerce
profiles:
active: dev
이제 User Service와 똑같은 토큰 정보를 참조 할 수 있습니다!
#TestCase2
프로필을 수정했으니 눈물을 머금고, 다시 서비스를 시작해줍니다.
다음과 같이 인증에 성공했다면, 아주 잘되고 있다는 증거입니다!
token값도 ggpark_token_dev로 바뀐게 보이시나요? 이렇듯 Profile을 사용하면, 다양한 yml파일을 좀더 쉽게
활용 할 수 있습니다.
감사합니다.
'웹 프로그래밍 > MSA 학개론' 카테고리의 다른 글
[MSA]Spring Cloud Bus을 이용한 Configuration 설정 ( Rabbit MQ, Elrang ) -0- (0) | 2022.04.25 |
---|---|
[MSA] 잠깐 쉬어가는 Remote Git Repository (Config - Service) (0) | 2022.04.25 |
[MSA] User-Service와 Config Server 연동 - 3 - (0) | 2022.04.21 |
[MSA] User-Service와 Config Server 연동 - 2 - (0) | 2022.04.21 |
[MSA] User-Service와 Config Server 연동 - 1 - (0) | 2022.04.21 |
- Total
- Today
- Yesterday
- prometheus
- 미래의나에게동기부여
- Kafka Connect
- zipkin
- 운동
- git
- 빅-오
- ACTUATOR
- 오늘저녁 삼겹살
- Logstash to ElasticSearch
- kafka
- consumer
- Logstash 활용
- github
- rabbitmq
- MSA
- MariaDB
- Spring + ELK
- Feign
- JWT
- LoadBalancer
- 루틴기록
- config
- Gateway
- elasticSearch
- springcloud
- 운동일기
- UserService
- producer
- docker
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |