어플리케이션에 @EnableEurekaServer추가
server:
port: 8761 #Eureka 기본 포트
spring:
application:
name: eureka-server # 서비스 간의 식별을 위한 이름
eureka:
client:
register-with-eureka: false # 단일 유레카서버 - false / 유레카 서버 증설 시 (트래픽이 늘어나면) true
fetch-registry: false # 다른 서버와 동기화 하지 않음 (단일 서버) / 유레카서버끼리 통신을 하려면 true
server:
enable-self-preservation: false # 자기 보호 기능
2.api-gateway
InteliJ project build
: Reactive Gateway / Eureak Discovery Client / Spring Boot Devtools
server:
port: 8080
spring:
cloud:
gateway:
routes:
- id: user-service
uri: lb://USER-SERVICE
predicates:
- Path=/user/**
- id: order-service
uri: lb://ORDER-SERVICE
predicates:
- Path=/order/**
Eureka server에 관한 내용은 bootstrap.yml 에서 설정해야한다.
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
instance:
prefer-ip-address: true # DNS 없이 ip면 true
InteliJ project build
: Eureak Discovery Client / Spring Web / Spring Boot Devtools
server:
port: 8081
spring:
application:
name: user-service # Gateway 에 설정한 이름이랑 같아야함
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/ # 유레카서버 알려줌
InteliJ project build
: Eureak Discovery Client / Spring Web
server:
port: 8082
spring:
application:
name: order-service
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
server:
port: 8083
spring:
application:
name: order-service
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/spring.application.name=order-service2
-> 똑같은 이름의 서버를 띄우면 서로 번갈아가면서 동작한다.
** 실행순서 - eureka server 가 제일 먼저 실행되야한다.
-> user-service / order-service 프로젝트 내에 컨트롤러 만들어서 gateway 포트로 접속해서 요청 전송되는지 확인