🔻중요 컴포넌트
Spring Cloud Netflix의 Zull, Eureka, hystrix, ribbon EOS, Spring Config
- eureka-server: 자기 자신을 등록(Service Registration)하는 서버, Eureka Clientrㅏ 가용한 서비스 목록(Service Registry)를 요청하는 서버
- eureka client: 서비스들의 위치 정보를 Eureka Server로부터 fetch하는 서비스
- Eureka-server
@EnableEurekaServer
//application.propetries server.port=8761 spring.application.name=discovery-service eureka.client.register-with-eureka=false eureka.client.fetch-registry=false
- Eureka-client
@EnableEurekaClient
//application.properties server.port=0 eureka.client.fetch-registry=true eureka.client.register-with-eureka=true eureka.client.service-url.defaultZone=http://localhost:8761/eureka spring.application.name=my-service1 eureka.instance.instance-id=${spring.application.name}:${spring.application.instance_id:${random.value}}
Frontend 개발자 에게 통일된 요청 정보가 필요함. Eureka는 단지 등록된 서비스들을 관리하는 역할만 함.
Load Balance와 유저 인증등 통일된 로직을 한곳에서 할 수 있음.
Nexflix Zuul이 있으나 2.4부터 nexflix 서비스들은 유지만 하는상태임.
Spring 측에서 Zuul을 대체한 Spring cloud Gateway를 만듬. (netty vs tomcat)
@EnableEurekaClient
//application.yml server: port: 8000 eureka: client: fetch-registry: true register-with-eureka: true service-url: defaultZone: http://localhost:8761/eureka instance: instance-id: ${spring.application.name}:${spring.application.instance_id:${random.value}} spring: application: name: gateway-service cloud: gateway: routes: - id: my-serv1 uri: lb://MY-SERVICE1 predicates: - Path=/serv1/** - id: my-serv2 uri: lb://MY-SERVICE2 predicates: - Path=/serv2/**