NSQ 메시지 큐의 디스크 저장소: DiskQueue 설계 상세
개요 및 역할
NSQ 아키텍처에서 DiskQueue는 비휘발성 스토리지 역할을 수행하는 핵심 컴포넌트입니다. 메모리 기반 처리의 속도와 디스크 기반 영구성의 안정성을 결합하여, 시스템 재부팅 후에도 손실되지 않도록 메시지를 파일로 관리합니다. 이 구성 요소는 메모리와 디스크 사이의 효율적인 데이터를 이동시키는 메커니즘을 제공하며, 특히 고可用 환경에서 데이터 ...
8월 1일 19:28에 게시됨
Machinery Task Signatures: 분산 환경에서의 비동기 작업 설계 및 구현 가이드
Machinery는 Go 언어로 작성된 분산 메시지 패싱 기반의 비동기 작업 큐 시스템입니다. 이 시스템의 핵심 개념인 작업 시그니처(Task Signature)는 분산된 워커들 사이에서 실행될 작업의 명세서 역할을 합니다. 효율적이고 확장 가능한 시스템 구축을 위해 작업 시그니처를 설계하고 활용하는 방법을 상세히 살펴봅니다.
1. 작업 시그니처의 기본 구조
작업 시그니처는 ...
8월 1일 10:51에 게시됨
Nest.js 애플리케이션에 Dapr 통합하기
Dapr(Distributed Application Runtime)는 분산 환경에서 탄력적이고 확장 가능한 마이크로서비스를 구축할 수 있도록 돕는 이벤트 기반 런타임입니다. Nest.js 프레임워크와 Dapr JS SDK를 결합하면 서비스 간 통신, 상태 관리, 바인딩 등 Dapr의 강력한 기능들을 Nest.js의 의존성 주입(DI) 시스템 내에서 효과적으로 활용할 수 있습니다.
프로젝트 구조 설계
...
7월 19일 04:06에 게시됨
레디스 마스터-슬레이브 모드 구성 가이드
클라우드 서버 환경에서는 간헐적인 연결 중단 문제가 발생할 수 있으며, 이로 인해 레디스 기반 기능이 예기치 않은 오류를 겪을 수 있습니다. 이를 방지하기 위해 레디스 마스터-슬레이브 모드 구성이 필요합니다. 다음은 구현 방법입니다.
단일 레디스 연결 설정
@Bean
public RedisConnectionFactory redisConnectionFactory() {
// 연결 풀 설정
RedisPoolC ...
7월 13일 19:05에 게시됨
Zookeeper 설치 및 클러스터 구성 가이드
개요
Zookeeper는 분산 시스템에서 노드 간의 동기화와 협력을 지원하는 중간 소프트웨어입니다. 파일 시스템과 유사한 트리 구조를 사용하며, 변경 사항을 클라이언트에게 실시간으로 알리는 기능도 제공합니다.
공식 사이트: https://zookeeper.apache.org/
구성 요소: 하나의 리더(Leader)와 여러 팔로워(Follower)로 구성된 클러스터입니다. 절반 이상의 노 ...
7월 12일 04:23에 게시됨
Go에서 Kratos 프레임워크의 복구 기능을 활용한 서비스 안정성 확보
서비스 간 호출 체인이 존재할 때, 하나의 서비스가 장애를 일으키면 의존하는 다른 서비스까지 영향을 받을 수 있다. 이러한 상황을 방지하기 위해 융단기 (Circuit Breaker) 기법이 사용된다. 이는 전기 회로의 차단기와 유사하게, 하위 서비스의 불안정 상태를 감지하고 일시적으로 요청을 차단함으로써 전체 시스템의 과부하를 막는다.
융단기 동작 원리
융단기는 ...
7월 3일 05:22에 게시됨