<profile>
.ymlmkdir
로 디렉토리 생성cd
디렉토리로 이동init
로 깃 시작 : 현재 디렉토리 위치에서 깃 지역저장소 생성vim
ecommerce.yml파일 생성token:
expiration_time: 86400000
secret: user_token
gateway:
ip: 127.0.0.1
add
ecommerce.ymlcommit
-m "upload an application taml file" 깃 커밋server:
port: 8888
spring:
application:
name: cong-service
cloud:
config:
server:
git:
uri: file:///Users/Cha/Desktop/마이크로서비스/git-local-repo
=> file:// + yml파일의 경로(명령어 pwd)
spring:
application:
name: user-service
config:
import: optional:configserver:http://localhost:8888
cloud:
config:
name: ecommerce // cloud config의 yml파일 이름
=> cloud config의 yml파일의 설정을 가져와서 서비스에 적용
http.authorizeRequests().antMatchers("actuator/**").permitAll();
=> webSecurity 클래스에 경로 설정
management:
endpoints:
web:
exposure:
include: refresh, health, beans
=> refresh
는 cloud config 정보가 변경되었을 때, actuator/refresh 를 uri로 Post
호출하면 서비스를 재가동하지 않아도 변경된 config정보를 적용할 수 있음 , 나머지는 Get방식
마이크로서비스가 많으면 refresh 해야할 횟수가 많아지므로 매우 불편
- id: user-service
uri: lb://USER-SERVICE
predicates:
- Path=/user-service/actuator/**
- Method=GET,POST
filters:
- RemoveRequestHeader=Cookie
- RewritePath=/user-service/(?<segment>.*), /$\{segment}
management:
endpoints:
web:
exposure:
include: refresh, health, beans, httptrace
=> httptrace 기능을 사용하기 위해서는
HttptraceRepository를 빈으로 등록해야함
@Bean
public HttptraceRepository httptraceRepository(){
return new InMemoryHttptraceRepository();
}
모든 노드(service)
에 전달AMQP
: 메시지 지향 미들워에를 위한 개방형 표준 응용 계층 프로토콜, Erlang, RabbitMQ에서 사용
- RabbitMQ
Kafka
: Scalar 언어로 개발한 오픈 소스 메시지 브로커 프로젝트, 분산형 스트리밍 플랫폼으로 대용량 데이터를 처리할 수 있는 메시징 시스템
노드 연결
,endpoint 설정
busrefresh
로 RabbitMQ에 알리고 RabbitMQ는 자신에게 연결된 다른 서비스에 변경된 코드를 자동으로 pushspring:
application:
name: config-service
rabbitmq:
host: 127.0.0.1
port: 5672 //웹브라우저에서 접속할때는 15672 ,
시스템에서 amqp프로토콜을 사용할 때는 5672
username: guest
password: guest
management:
endpoints:
web:
exposure:
include: health, busrefresh
profiles:
active: dev , prod 등.. [application]-[profiles].yml
spring:
application:
name: config-service
cloud:
config:
server:
git:
# uri: file:///Users/dowonlee/Desktop/Work/git-local-repo
uri: https://github.com/joneconsulting/spring-cloud-config
# basedir: /Users/dowonlee/Desktop/Work/tmp/config-repo
# username: [username]
# password: [password]
=>remote git repository가 private이라서 아이다와 비밀번호가 필요한 경우