L4/L7 로드밸런서
로드밸런서(Load Balancer)는 들어오는 네트워크 트래픽을 여러 서버에 분산시켜 가용성과 성능을 높이는 장치다. 서버 한 대가 모든 요청을 처리하면 과부하로 다운되지만, 여러 대로 분산하면 한 대가 죽어...
로드밸런서(Load Balancer)는 들어오는 네트워크 트래픽을 여러 서버에 분산시켜 가용성과 성능을 높이는 장치다. 서버 한 대가 모든 요청을 처리하면 과부하로 다운되지만, 여러 대로 분산하면 한 대가 죽어...
DNS(Domain Name System)는 사람이 읽을 수 있는 도메인 이름(www.example.com)을 컴퓨터가 사용하는 IP 주소(93.184.216.34)로 변환하는 분산 계층 데이터베이스 시스템이다.
모니터링 시스템은 소프트웨어의 조종석이다. 시스템이 얼마나 잘 동작하고 있는지 측정하고(Metrics), 무슨 일이 일어났는지 기록하며(Logs), 요청이 어디를 거쳤는지 추적한다(Traces).
로컬 캐시란?
왜 이게 중요한가?
브로커 한 대가 갑자기 죽었다. 그 브로커에만 있던 메시지는 영영 사라지는가? Kafka는 처음부터 이 상황을 가정하고 설계됐다. 파티션을 여러 브로커에 복제해두고, 리더가 죽으면 팔로워 중 하나가 즉시 리더를...
kafkaTemplate.send("orders", event) 한 줄이면 메시지가 전송된다고 생각하기 쉽다. 하지만 이 한 줄 뒤에는 직렬화, 파티셔닝, 배치 누적, 압축, 재시도, ACK 확인까지 수십 가지...
주문이 DB에 저장됐는데 Kafka 발행이 실패했다. 결제 서비스는 주문을 모른다. 반대로 Kafka 발행은 됐는데 DB 롤백이 됐다. 결제 서비스는 존재하지 않는 주문을 처리한다. 분산 트랜잭션 없이 이 문제...
초당 100만 건의 주문 이벤트가 쏟아지는 쇼핑몰을 상상해보자. producer.send(record)를 호출할 때마다 네트워크 요청이 한 번씩 나간다면 시스템은 버티지 못한다. Kafka Producer는 내...
서비스가 성장하면서 주문, 결제, 배달, 통계, 알림 시스템이 서로 직접 API를 호출한다. 하나가 느려지면 전체가 느려지고, 하나가 죽으면 연쇄 장애가 난다. Kafka는 이 결합을 끊는다.