Spring Cloud로 개발하는 MSA/API Gateway Service

Spring Cloud Gateway - 프로젝트 생성

webmaster 2022. 5. 3. 15:30
728x90

Zuul과의 가장 큰 차이는 비동기 방식을 지원한다는 장점이 있다.

SpringCloud에서는 Netty라는 비동기 방식을 지원하는 서버를 호출하여 준다.

프로젝트 생성

프로젝트 생성

  • Lombok, Gateway, EurekaDiscoveryClient 사용

application.yml

server: 
	port: 8000
eureka:
	client:
		register-with-eureka: false
		fetch-registry: false
            	service-url: 
                	defaultZone: http://localhost:8761/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/** #해당 정보 모두가 URI 뒤에 붇게 된다. http://localhost:8082/second-service/**
  • port : 8000
  • Eureka를 사용하지 X(서비스에만 등록한다)
  • 어떠한 라우터인지를 적어준다.
    • id, uri,predicates 를 설정한다.

@RequestMapping을 URL 정보를 수정해야 한다(Spring cloud가 관리하기떄문)

  • 주의할 점 : predicates에 해당 Path정보가 그대로 uri뒤에 붙기때문에 주의하여 사용해야 한다.
    • http://localhost:8082/second-service/welcome으로 호출이 된다.
    • first, second Service을 RequestMapping 정보를 변경해 주어야한다.

 

728x90