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





  • No labels