728x90
반응형
# MSA 아키텍처 구성을 위한 LoadBalancer 실행하기
- firstproject에서 application.yaml 파일을 아래와 같이 입력하여 랜덤 포트를 받을수 있도록 설정한다.
server:
port: 0
spring:
application :
name: first-service
eureka:
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://localhost:8761/eureka
instance :
instance-id: ${spring.cloud.client.hostname}:${spring.application.instance_id:${random.value}}
1. vm 옵션을 활성화 하여 새로운 프로젝트 실행
- 실행 코드는 아래와 같다.
-Dserver.port=9092
2. gradle 명령어를 활용하여 실행
- 터미널에서 아래 명령어를 활용하여 실행
./gradlew bootRun
./gradlew bootRun --args='--server.port=9092'
3. FirstService에 /check 항목에 포트번호 표시
- FirstService Controller에 /check 항목을 호출시 서버 포트번호가 표시되도록 설정
기존 코드를 아래와 같이 수정한다. env 항목과 log에 포트 번호를 표시할 수 있도록 코드를 추가한다.
package MSA.MSAFirstService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
@Slf4j
@RestController
@RequestMapping("/first-service")
public class FirstServiceController {
Environment env;
@Autowired
public FirstServiceController(Environment env) {
this.env = env;
}
@GetMapping("/welcome")
public String welcome() {
return "Welcome to the First Service.";
}
@GetMapping("/message")
//메세지라는 메소드가 실행됨에 있어서 "first-request" 헤더값을 받아오고, 그 값이 header안에 저장이 된다.
public String message(@RequestHeader("first-request") String header) {
log.info(header);
return "Hello World in First Service.";
}
@GetMapping("/check")
public String check(HttpServletRequest request) {
log.info("Server port={}", request.getServerPort());
return String.format("Hi, there. This is a message from First Service on Port %s"
, env.getProperty("local.server.port"));
}
}
그리고 인텔리J에서 터미널 항목을 통해 9091과 9095로 서비스가 실행되도록 로드밸런싱을 구성한다.
결과는 아래와 같다.
- 라운드 로빈 방식으로 한번씩 접속을 하는 것을 볼 수 있다.
728x90
반응형
'MSA (MicroServiceArchitecture) > Eureka & Spring Cloud Gateway' 카테고리의 다른 글
MSA 구성정리 with Eureka, Spring Cloud GW (0) | 2023.03.30 |
---|---|
MSA (LoadBalencer를 위한 설정) (0) | 2021.06.18 |
MSA (LoggingFilter) (0) | 2021.06.18 |
MSA (GlobalFilter) (0) | 2021.06.18 |
MSA Spring (CustomFilter) (0) | 2021.06.18 |