Zulu는 Edge 또는 GateWay 라고 불린다. 그리고 이것이 필요한 이유는 간단합니다.
마이크로 서비스는 수많은 여러개의 아이피와 포트로 분산되어 구동이 되고 있으며
loadbalance 를 고려하여 엔드포인트 기반으로 하나의 단일 도메인및 디렉토리구조로 여러서비스를
게이트웨이를 이용하여 쉽게 접근이 가능합니다. 이와같은 서비스를 Proxy또는 게이트웨이 서비스라고 하며
Haproxy, NGIX 와 유사한 역활을 하게됩니다.
개요
EdgeService 는 단독으로도 작동이 되지만, Eureka와 Cloud Config와 완벽하게 연동이되니
앞장에서 설명한 두가지를 먼저 구동시키는것을 권장합니다.
셋팅
git : https://github.com/psmon/springcloud/tree/master/edge-service
config : https://github.com/psmon/springcloud/blob/master/library/config-sample/edgeservice.yml
서버
@EnableZuulProxy @EnableDiscoveryClient @SpringBootApplication @EnableSwagger2 public class EdgeServiceApplication { public static void main(String[] args) { SpringApplication.run(EdgeServiceApplication.class, args); } } <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-zuul</artifactId> </dependency>
Config
spring: profiles: local server: port: 8765 zuul: prefix: /api routes: account: path: /account/** serviceId: accountapi lobby: path: /lobby/** serviceId: lobbyapi game: path: /game/** serviceId: gameapi ribbon: eureka: enabled: true message: "hello, spring cloud edgeservice -local"
config 서버와 결합하여 동적 라우팅 설정이 가능합니다.
이것은 git의 설정 커밋으로 라우팅을 조정할수 있는 유연함을 제공합니다.
더 자세한 참고 자료 : https://blurblah.net/1577