분산 메시지 시스템에서 데이터 유실 방지 + 고가용성을 동시에 달성하려면 복제가 필수. “몇 개에 복제됐을 때 ack 할지”, “리더 죽으면 누가 새 리더?” 라는 두 결정을 Kafka 는 ISR (In-Sync Replicas) 이라는 동적 집합 으로 추상화. 정적 RF (replication factor) 와 별도로, 런타임에 실제 sync 된...
카프카 파티션 로그의 오프셋들 — LEO, HW, LSO
카프카를 쓰면서 만나는 “오프셋”은 하나가 아니다. 컨슈머 그룹이 “여기까지 처리했다”고 커밋하는 오프셋이 있고, 브로커가 파티션 로그 자체의 상태를 나타내려고 매기는 오프셋이 따로 있다. 커밋된 오프셋도 브로커(__consumer_offsets)에 저장되지만, 값을 정하는 쪽은 컨슈머다. ISR·복제·리더 선출을 다루면서 나오는 오프셋은 전부 후...
카프카 프로듀서에서 컨슈머까지의 처리 흐름
이벤트 하나가 프로듀서에서 발행되어 컨슈머가 처리하고 오프셋을 커밋하기까지의 흐름을 훑는다. ISR·High Watermark·오프셋 관리 같은 개별 개념의 상세는 별도 글에서 다루고, 여기서는 각 단계에서 누가 무엇을 결정하는지에 초점을 맞춘다. 본문에 나오는 설정 기본값은 Apache Kafka 4.2 문서 기준이다. acks, enable...
카프카 개요
카프카란 ? 공식 사이트에서는 “Apache Kafka is an open-source distributed event streaming platform“라고 표현 아래는 카프카 에코시스템 구성도로, 외부 시스템을 제외한 모든 게 Apache Kafka 에코시스템에 포함된다. 단, Schema Registry와 일부 Connect 커넥...
부하 테스트, 어떻게 주고 어떻게 읽을 것인가
들어가며 “TPS 5,000 나왔습니다”라는 문장에는 정보가 거의 없다. 무엇을 고정하고 무엇을 밀어 넣었는지가 빠져 있기 때문이다. 같은 시스템, 같은 코드로 측정해도 아래 조건에 따라 결과가 자릿수 단위로 갈린다. 동시 사용자 수를 고정했는가, 초당 유입량을 고정했는가 부하를 한 번에 몰아넣었는가, 몇 분에 걸쳐 꾸준히 넣...
MySQL - LOCK 살펴보기 (2) — 락의 타입과 종류
1편에서 락이 무엇이고, 어떤 인덱스 구조 위에서 어떤 과정으로 잡히는지 봤다. 이번 편은 InnoDB가 제공하는 개별 락을 타입(how, S/X) 과 종류(what, 레코드·갭·넥스트키…) 두 축으로 하나씩 살펴본다. Lock 타입 (how) InnoDB는 기본적으로 행 수준(row-level) 잠금을 구현하며(테이블 수준 잠금도 ...
MySQL - LOCK 살펴보기 (1) — 락 기초와 잠금 과정
락을 잘 모르면 비효율적인 쿼리를 작성하거나, 데드락을 유발하거나, 불필요한 성능저하 등을 일으킬 수 있다고 생각한다. 또한 디버깅시 실마리를 못잡을 수도 있다. 이런 일을 최대한 겪지 않도록 MySQL에서는 어떤 락을 제공하는지 살펴보자. 이 글은 두 편으로 나눈다. (1편) 락이 무엇이고, 어떤 인덱스 구조 위에서, 어떤 과정으로 잡히는지...
HTTPS 요청이 HTTP로 리다이렉트 되는 현상 2
상황 약 3년 전 HTTPS 요청이 HTTP로 리다이렉트 되는 현상을 겪었었다. 이때는 해결방법 2 (RequestHeader set X-Forwarded-Proto “https”) ForwardedHeaderFilter 이전 서버 구성 (브라우저) ---- https ---- (Load Balancer 1 : DSR 방식) ---- ht...
WEB - TCP vs UDP, 그리고 네트워크 진단 도구들
네트워크 팀과 소통하다 보면 “그 서버로 telnet 한번 때려보세요”, “traceroute 결과 좀 주세요” 같은 얘기를 자주 듣는다. 그런데 정작 그 도구가 뭘 하는 도구인지, 왜 그걸 쓰라는 건지 모르면 결과를 봐도 해석을 못 한다. 특히 네트워크 팀에서 “ACL 열어드렸어요”라고 했는데 telnet이 안 되면, 이게 네트워크가 안 열린 ...
WEB - WAF, SNAT, DNAT 등 (서버 이전하면서 헷갈렸던 개념들 정리)
최근 회사에서 서버 이전 작업을 하면서 헷갈렸던 개념들을 정리해본다. FW vs WAF — 왜 방화벽이 있는데 또 필요한가 이름이 둘 다 “방화벽”이라 헷갈리지만 검사하는 계층이 다르다. FW (방화벽) WAF (Web Application Firewall) ...