Builder.shin
Infrastructure
35개의 게시물
Elasticsearch
Elasticsearch 동적 매핑 때문에 발생한 타입 충돌 해결
로그 수집 시스템에서 같은 필드명에 다른 타입의 데이터가 들어오면서 인덱싱 에러가 발생했다. Elasticsearch의 동적 매핑 정책을 이해하고 명시적 매핑으로 전환한 과정을 정리했다.
2020년 1월 4일
gRPC
gRPC 스트리밍으로 대용량 로그 전송 구조 개선
REST API로 처리하던 대용량 로그 전송을 gRPC 서버 스트리밍으로 전환했다. 메모리 사용량이 70% 감소하고 타임아웃 문제가 해결됐다.
2019년 12월 13일
gRPC
gRPC에서 Deadline 설정으로 타임아웃 제어하기
MSA 환경에서 gRPC 통신 시 타임아웃 처리가 제대로 되지 않아 장애가 전파되는 문제가 있었다. Deadline을 설정해 연쇄 장애를 방지한 경험을 정리했다.
2019년 12월 10일
gRPC
gRPC 프로젝트에 Reflection API 적용하기
마이크로서비스 간 통신을 gRPC로 전환하면서 겪은 디버깅 불편함을 해결하기 위해 gRPC Reflection을 도입했다. 별도 proto 파일 없이도 서비스 스펙을 확인하고 테스트할 수 있게 되었다.
2019년 10월 31일
gRPC
gRPC 서비스 간 인증 구현하기 - Metadata Interceptor 활용
MSA 환경에서 gRPC 서비스 간 인증이 필요해졌다. REST API의 Authorization 헤더처럼 gRPC에서는 Metadata와 Interceptor를 활용해 토큰 기반 인증을 구현했다.
2019년 9월 25일
gRPC
gRPC 스트리밍으로 대용량 파일 업로드 구현하기
REST API로 처리하던 파일 업로드를 gRPC 양방향 스트리밍으로 전환했다. 메모리 사용량을 70% 가까이 줄일 수 있었고, 업로드 진행률 추적도 자연스럽게 구현되었다.
2019년 9월 10일
gRPC
gRPC 서비스에서 Deadlines 설정하기
마이크로서비스 간 통신에서 timeout 문제로 장애가 전파되는 이슈를 겪었다. gRPC의 deadline 기능을 도입해 타임아웃을 명시적으로 관리하도록 개선했다.
2019년 9월 5일
gRPC
gRPC 스트리밍으로 실시간 로그 전송 구현하기
마이크로서비스 간 실시간 로그 수집을 위해 gRPC의 Server Streaming을 도입했다. HTTP/2 기반의 양방향 스트리밍으로 폴링 없이 효율적인 데이터 전송이 가능했다.
2019년 9월 2일
gRPC
gRPC 서비스에서 메타데이터로 인증 처리하기
RESTful API에서 gRPC로 마이그레이션하면서 인증 처리 방식을 구현했다. HTTP 헤더 대신 메타데이터를 사용하는 방식과 인터셉터 패턴을 정리했다.
2019년 8월 4일
gRPC
gRPC Node.js 클라이언트에서 Deadline 설정하기
마이크로서비스 간 통신에서 타임아웃 문제로 장애가 전파되는 이슈가 발생했다. gRPC의 Deadline 메커니즘을 통해 안정적으로 처리한 경험을 정리했다.
2019년 5월 8일
Previous
1
2
3
4
Next
카테고리
Builder.shin