- msa 서비스는 하나의 서비스가 다른 여러 서비스들을 호출하고. 또 그것이 비동기적으로 다른스레드로 요청되기 때문에 하나의 트랜잭션을 추적하기에 어려움이 있다
- 이것을 도와주는 것이 sleuth 라는 라이브러리
- 하나의 요청 단위를 trace Id로, 스레드별로 id를 두개
traceId는 하나의 요청단위에 있어서 유니크하며 이것은 서비스간 소통을 할때에도 동일하게 유지된다 (신기하군. AOP 로 구현할수있을것같음 )
위 이미지에서보듯이 스레드가 달라졌다 - feignClient 이용한 비동기요청
그러나 traceId 는 유지된다.
동일하게 - 호출된쪽의서비스에서도 해당 traceId를 유지하고있는 것을 확인할 수 있다.
이것을 zipkin서버와 연동하여 시각화 하면 더 좋다고는 하는데!!zipkin자체서버를 또 만들어야한다는 부담은 있다.. sleuth 만 넣어줘도. 좋을듯??
근데 - 결국에는 로그를 계속 심어줘야해서.... -> 이부분 어짜피 AOP로 해야되니까 걍 sleuth 안쓰고 다 AOP직접 구현해서 할수있을것도 같네...


댓글 없음:
댓글 쓰기