728x90
분산 추적 Distributed Tracing
- 각각의 요청에 Unique Id 할당
- 시간 데이터를 모아 시간 지연 문제 해결
집킨 사용
Open Zipkin 은 MSA 에서 성능 문제를 확인할 수 있는 매우 편리한 도구
- 트랜잭션의 소요 시간을 그래픽으로 확인 가능
- 호출에 관련된 각 마이크로서비스별로 소요된 시간 분석 가능
이미지 생성, 컨테이너 생성
openzipkin/zipkin Tags | Docker Hub
docker run -p 9411:9411 openzipkin/zipkin:2.23
의존성 추가
currency-conversion-service, currency-exchange-service, api-gateway 서버
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-sleuth-zipkin -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-sleuth-zipkin</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.amqp</groupId>
<artifactId>spring-rabbit</artifactId>
</dependency>
application.properties
currency-conversion-service, currency-exchange-service, api-gateway
#zipkin
# 0.1 : (10%) 1초에 1000건이 들어왔다고하면 여기에서 100건을 zipkin에게 전달
spring.sleuth.sampler.probability=1.0
zipkin을 통해 요청에 대한 지연시간등의 정보를 볼 수 있음.
CurrencyExchangeController
private Logger logger = LoggerFactory.getLogger(CurrencyExchangeController.class);
@GetMapping("/currency-exchange/from/{from}/to/{to}")
public CurrencyExchange retrieveExchangeValue(
@PathVariable String from,
@PathVariable String to
)
{
logger.info("retrieveExchangeValue called with {} to {}", from , to);
로거를 통해 Trace ID 확인 가능
2022-12-11 22:51:35.935 INFO [currency-exchange,efa2a030a5d3cc0b,efa2a030a5d3cc0b] 6876 --- [nio-8000-exec-2] c.j.m.c.c.CurrencyExchangeController : retrieveExchangeValue called with USD to INR
참고:
Distributed tracing (microservices.io)
'Back-end > Spring Cloud (MSA)' 카테고리의 다른 글
Spring Cloud (MSA) - 스프링부트 도커 이미지 생성 후 컨테이너 실행 (0) | 2023.02.01 |
---|---|
도커 설치 이미지 컨테이너 명령어 (0) | 2023.01.16 |
Spring Cloud (MSA) - Resilience4j @Retry @CircuitBreaker(서킷브레이커) (0) | 2022.12.06 |
Spring Cloud (MSA) API Gateway - 경로탐색(Exploring Routes), Logging Filter (0) | 2022.12.03 |
Spring Cloud (MSA) - 로드밸런싱 Eureka, Feign (0) | 2022.11.27 |
댓글