본문 바로가기

MSA (MicroServiceArchitecture)/Eureka & Spring Cloud Gateway

MSA (LoadBalencer를 위한 설정)

1. first-service 와 second-service의 application.yml 파일에 아래의 내용을 각각 추가해 줍니다.

eureka:
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://localhost:8761/eureka

- 위와같이 설정해 주는 이유는 eureka 매니저 서버에서 first-service와 second-service와의 통신을 통해 서비스를 관리하기위한 설정 입니다.

server:
  port: 8081

spring:
  application :
    name: my-first-service

eureka:
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://localhost:8761/eureka

- first-service의 application.yml 파일의 전체 설정 코드 입니다.

2. apigateway-service의 application.yml파일을 아래와 같이 수정해 줍니다.

server:
  port: 8000

eureka:
  client:
    register-with-eureka: true #수정됨
    fetch-registry: true #수정됨
    service-url:
      defaultZone: http://localhost:8761/eureka
spring:
  application:
    name: apigateway-service
  cloud:
    gateway:
      default-filters:
        - name: GlobalFilter
          args:
            baseMessage: Spring Cloud Global Filter
            preLogger: true
            postLogger: true
      routes:
        - id: first-service
          uri: lb://MY-FIRST-SERVICE #수정됨
          predicates:
            - Path=/first-service/** 
          filters:
#            - AddRequestHeader=first-request, first-request-header2 #앞에값이 키값이고 뒤에값이 벨류이다.
#            - AddResponseHeader=first-response, first-response-header2 #앞에값이 키값이고 뒤에값이 벨류이다.
             - CustomFilter
        - id: second-service
          uri: lb://MY-SECOND-SERVICE #수정됨
          predicates:
            - Path=/second-service/** 
          filters:
#            - AddRequestHeader=second-request, second-request-header2 #앞에값이 키값이고 뒤에값이 벨류이다.
#            - AddResponseHeader=second-response, second-response-header2 #앞에값이 키값이고 뒤에값이 벨류이다.
             - name: CustomFilter
             - name: LoggingFilter
               args:
                 baseMessage: Hi, there.
                 preLogger: true
                 postLogger: true

- 수정이 된 부분은 #수정됨 으로 표기해 놓았습니다.

- 내용을 보자면, eureka 클라이언트에 등록을 한다는 내용과, lb에 url 주소가 아닌 first-service와 second-service에 application.yml 파일에 설정된 name 값을 매핑하여 서비스를 불러오는것을 볼 수있다.

- 다음 시간에는 로드밸런싱에 대해서 알아보자.

'MSA (MicroServiceArchitecture) > Eureka & Spring Cloud Gateway' 카테고리의 다른 글

MSA 구성정리 with Eureka, Spring Cloud GW  (0) 2023.03.30
MSA (LoadBalancer 실행)  (0) 2023.03.30
MSA (LoggingFilter)  (0) 2021.06.18
MSA (GlobalFilter)  (0) 2021.06.18
MSA Spring (CustomFilter)  (0) 2021.06.18