Tag: DistributedSystems
이 태그가 달린 글들 "DistributedSystems"
-
세션을 잃지 않으려면 요청을 어디로 보내야 하는가 — affinity와 계정 단위 직렬화
브라우저 세션은 인스턴스의 메모리에 있고, 같은 계정의 로그인·조회·댓글 등록은 서로 영향을 줍니다. Redis affinity로 기존 세션이 있는 인스턴스로 요청을 보내고, REST·메시징·관리 경로를 계정 단위 lock으로 직렬화하며, 소유 인스턴스 장애 때 health check 기반으로 새 세션을 수립하도록 바꾼 과정을 정리합니다.
-
큐가 가득 찼을 때 작업을 잃지 않으려면 — 6,397건 거절에서 배운 backpressure
브라우저 작업이 포화된 실제 운영 구간에서 3일간 6,397건의 publish가 queue-full로 거절됐습니다. bounded queue·publisher confirm·재예약·stale recovery로 수용 불가를 유실이 아닌 추적 가능한 상태 전이로 바꾼 과정을 정리합니다.
-
왜 인스턴스를 두 개로 늘릴 수 없는가 — 인메모리 pool의 수평 확장 한계
reputation-pool-cloud의 인스턴스를 두 개로 늘리면 같은 리소스가 중복 대여되고, JVM별 fencing token이 충돌하며, 전체 snapshot checkpoint가 서로의 변경을 덮어쓸 수 있습니다. 아직 운영 장애가 아니라 현재 코드에서 구성한 설계 반례입니다. lease·snapshot·메모리 예산·rate limit의 정확성 범위를 추적하고 tenant sharding, 상태 외부화, single writer를 비교해 다음 경계를 결정합니다.