-
Armeria, gRPC, Zipkin, ELK 조합 굿Working 2021. 7. 15. 15:19
MSA
- Front-Service
- Aggregation-Service
- Backend-Micro-Service
특정
- 비동기 지원(Courutine)
- 분산 Tracing(pinpoint, Zipkin)
- 요청이 가볍고 빠름(gRPC + Protobuf)
빠른 개발 속도
- Armeria + gRPc
- 보일러 플레이팅 -> 팀내 규격확
gRPC 약점
- 제한된 브라우저 지원
- 사람이 읽을 수 없음
- 아메리아와 함께 사용함으로서 다양한 MimeType지원, 자동 문서화 가능
- 자동으로 Protobuf기반 문서화 및 Swagger처럼 테스트 가능(DocService)
graphQL Backend Service Aggregation
- 각 Client가 직접 gQL을 호출
- 어떤 클라이언트에서 호출을 하는지 추적 불가능 -> 장애 위험 요소
- 각 서비스 API 컴포넌트를 통해서 유입
- Batch dataLoader를 통해 우아하게 N+1 문제 해결 가능
- 초기 설계 중요, 비동기 주의
MSA 모니터링
- ZIPKIN을 활용한 MSA 분산 모니터링
- Repoter -> Transpoter -> Collector -> Tracing -> UI
- AccessLog ELK 도입 -> 각 서버마다 들어가서 로그 확인하는 일이 90% 미만으로 줄어듦
- 비동기 환경 분산 Tracing -> 하나의 Thread에서 요청이 보장되지 않음. Tracing Context를 전달해야 하나의 Tracing으로 처리 됨
'Working' 카테고리의 다른 글
Apache HttpClient5 (0) 2021.07.20 [우아콘2020] 수십억건에서 QUERYDSL 사용하기 (0) 2021.03.08 Mapstruct (0) 2021.02.22 Best practices for REST API design (0) 2021.02.22