유레카 서버
Eureka는 Netflix에서 제공하는 MSA를 위한 클라우드 오픈 소스이다.
AWS와 같은 Cloud 시스템에서 서비스의 로드 밸런싱이랑 실패처리 등을 유연하게 가져가기 위해 각 서비스들의 IP/Port/InstanceId 를 가지고 있는 REST 기반의 미들웨어 서버이다.
@EnableEurekaServer 를 통하여 등록하고
application.yml 파일에
server:
port: 8761
spring:
application:
name: eureka
eureka:
client:
register-with-eureka: false
fetch-registry: false
위와 같은 설정을 하지 않으면 기본적으로 true로 설정되면서
자기자신을 또 등록하는 현상인데 의미 없는 작업이기에 설정해줌
즉, Eureka 서버는 가동은 하지만 자기 자신의 정보를 외부에 있는 다른 마이크로 서비스가
Eureka서버에 정보를 주고 받는 것을 할 필요 없기 때문이다
로드밸런싱
server:
port: 0
spring:
application:
name: user-service
eureka:
instance:
instance-id: $ {spring.cloud.client.hostname}:{spring.application.instance_id:{random.value}}
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://112.1.1.2:8761/eureka
API Gateway
출처 인프런 Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
출처 인프런 Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Netty 기반의 비동기 통신을 지원하는 형태의 웹 애플리케이션
server:
port: 8000
eureka:
client:
register-with-eureka: false
fetch-registry: false
service-url:
defaultZone: http://112.1.1.2/eureka
spring:
application:
name: apigateway-service
cloud:
gateway:
routes:
- id: first-service
uri: http://localhost:8081/
predicates:
- Path=/first-service/
- id: second-service
uri: http://localhost:8082/
predicates:
- Path=/second-service/