Clude

태태개발일지-spring cloud

태태코 2024. 3. 2. 15:09
반응형

 

 

Eureka사용법

server:
  port: 0

spring:
  application:
    name: user-service

eureka:
  instance:
    instanceId: ${spring.cloud.client.hostname}:${spring.application.instance_id:${random.value}}
  client:
    registerWithEureka: true
    fetchRegistry: true
    serviceUrl:
      defaultZone: http://127.0.0.1:8761/eureka

port를 0으로하고, 

지정된 유레카의 url을 등록을 해놓으면 실제 유레카 사이트에서 어떤 서비스들이 켜져있는지 모니터링이 가능하게 된다.

 

설정의 의미는 port는 0으로 해놓으면 자동으로 포트를 설정하게 되고, 

eureka서버에 등록을 하고 싶으면 client설정에

registerWithEureka설정과 fetchRegistry설정을 true로 설정해야한다.

 

그리고 여러개의 instance를 확인하고 싶을 경우에는 instanceId를 radom.value를 활용하여 생성해주면된다.

 

 

이제 spring  api gateway에 대해서 볼것이다.

 

cloud:
  gateway:
    routes:
      - id: first-service
        uri: http://localhost:8082
        predicates:
          - Path=/first-service/**
        filters:
          - AddRequestHeader=first-request, first-request-header2
          - AddResponseHeader=first-response, first-response-header2
      - id: second-service
        uri: http://localhost:8081
        predicates:
          - Path=/second-service/**
        filters:
          - AddRequestHeader=second-request, second-request-header2
          - AddResponseHeader=second-response, second-response-header2

이와 같이 .yaml파일을 통해서 어떤 url이 들어오면 어떤 포트로 이동시킬건지 나타내던가.

 

package com.example.springgateway.config;

import org.springframework.cloud.gateway.route.RouteLocator;
import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

//@Configuration
public class FilterConfig {
//    @Bean
    public RouteLocator gatewayRoutes(RouteLocatorBuilder builder){
        return  builder.routes()
                .route(r->r.path("/first-service/**")
                        .filters(f -> f.addRequestHeader("first-request","first-request-header")
                                        .addResponseHeader("first-response","first-response-header"))
                        .uri("http://localhost:8082"))
                .route(r->r.path("/second-service/**")
                        .filters(f -> f.addRequestHeader("second-request","second-request-header")
                                .addResponseHeader("second-response","second-response-header"))
                        .uri("http://localhost:8081"))
                .build();
    }
}

 

실제 java config파일로 만들어서 filter를 통해서 router를 설정해 줄 수 있다.

반응형

'Clude' 카테고리의 다른 글

태태 개발일지(Spring cloude)  (0) 2023.08.21