태그: 마이크로서비스
4편
-
RabbitMQ·Redis 큐 vs Kafka vs NATS: 메시징 시스템별 철학과 선택 기준
RabbitMQ·Redis 큐, Kafka, NATS가 메시지를 다루는 방식의 차이를 비교하고, ack 전에 컨슈머가 죽거나 offset 커밋 순서가 틀려 메시지가 중복·유실되는 상황을 at-least-once 전달과 멱등 처리로 막는 방법을 Python 예제로 설명합니다.
-
C++ gRPC 운영 기능: 인터셉터, 로드밸런싱, 데드라인 전파, 재시도, 헬스 체크
프로덕션 C++ gRPC 서비스에 필요한 인터셉터 체인, Kubernetes 환경의 round_robin 로드밸런싱, Jitter를 섞은 재시도, Health Checking Protocol과 grpc_health_probe, 그레이스풀 셧다운을 예제로 구현합니다.
-
C++ gRPC 성능 다루기: Callback API, 스트리밍 메시지 크기, HTTP/2 멀티플렉싱
C++ gRPC 서버·클라이언트가 부하에서 느려지는 원인을 다룹니다. Sync API의 스레드 모델과 Callback API(Reactor) 서버·클라이언트, HTTP/2 멀티플렉싱과 동시 스트림 한도, 스트리밍 청크 크기와 흐름 제어, keepalive 함정, 재시도 정책을 코드와 함께 설명합니다.
-
C++ 고성능 RPC 시스템: gRPC와 Protocol Buffers를 이용한 마이크로서비스 구축
HTTP/JSON만으로 부족해진 서비스 간 통신을 gRPC와 Protocol Buffers로 옮기는 과정을 .proto 작성과 CMake 코드 생성부터 보여줍니다. 동기 서버와 CompletionQueue 비동기 서버, 스트리밍, DEADLINE_EXCEEDED 같은 상태 코드 대처를 다룹니다.