application.yml 관리하는 방법은 위 3가지 이다.
그 중에서 나는 private git repository를 이용해서 작업할 예정이다.
우선적으로 깃 레파지토리를 만들어줘 application.yml파일 정보를 옮긴다.
config 서비스 만들어서 configserver 등록해준다.
@SpringBootApplication
@EnableConfigServer
public class ConfigApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigApplication.class, args);
}
}
private repo이기 때문에 ssh 인증을 진행했다.
ssh 인증은
ssh-keygen -m PEM -t rsa -b 4096 -f ~/config_server_deploy_key.rsa
ssh 키 얻는 명령어
그럼 두개키가 생성된다.
1. id_rsa.pub
2. id_rsa
1번 키를 github SSH key에 등록한다.
2번 키를
application.yml 파일에 등록한다.
바뀐 설정파일을 반영해주는 방법
1. 서버 재기동
-> 설정파일 분리한 이유(보안, 설정파일 바뀔때마다 계속 서버를 재기동 시키기 귀찮음) 에 부합하지 않음
2. Actuator refresh
- Spring boot actuator
3. Spring cloud bus 사용
- 분산 시스템의 노드를 경량 메시지 브로커와 연결
- 상태 및 구성에 대한 변경 사항을 연결된 노드에게 전달
- 분산시스템의 노드를 경량 메시지 브로커(rabbitmq)와 연결
- 상태 및 구성에 대한 변경 사항을 연결된 노드에게 전달 (broadcast)
bootstrap.yml 파일
spring:
cloud:
config:
uri: http://127.0.0.1:8888
name: token
application.yml
rabbitmq:
host: 127.0.0.1
port: 5672
username: guest
password: guest
management:
security:
enabled: false
endpoints:
health:
show-details: always
web:
exposure:
include: refresh,health,beans,httptrace,busrefresh