반응형 non-blocking2 Redis Single Thread, 싱글인데 왜 빠르지?? MSA 아키텍처에서 Redis가 싱글쓰레드를 이용해서 처리가 되기 때문에 원자성(atomic)보장! 즉, 데이터 정합성이 깨지지 않습니다!그래서 커머스 같은 곳에서는 재고처리를 Redis로 하는데..그런데 말입니다! 잘나가는 커머스는 대용량 트래픽 일텐데 이걸 버텨낸다?? 싱글쓰레드인데? 왜 성능이 좋은지 살펴보도록 하겠습니다. Redis의 성능적 비밀은? Multiplexing / Event Loop사실 아니 어떻게 싱글쓰레드가 대용량 트래픽을 받는다는거지? 라는 의문이 생겨서 찾아보게 되고 포스팅을 하게 되었습니다.알고봤더니 다이렉트로 싱글 쓰레드가 받아서 처리하는 구조가 아니였습니다!!위 그림의 I/O Multiplexing을 살펴봅시다!1) 클라이언트 : A,B,C 클라이언트가 동시에 Redis .. 2025. 10. 28. C10K 문제(C10k Problem)란 무엇인가? 1. C10K 문제의 배경1990년대까지만 해도 웹 서버가 수백 개의 동시 연결만 처리해도 충분했습니다. 하지만 인터넷 보급과 함께 수천~수만 명이 동시에 접속하는 상황이 생기면서 기존 방식으로는 서버가 감당하기 어려운 한계에 부딪히게 되었고, 이를 C10K 문제라고 부릅니다.여기서 "C10K"는 Concurrent 10,000 connections의 줄임말입니다.2. 기존 방식의 한계초기 서버는 연결마다 스레드나 프로세스를 생성하는 구조였습니다.연결이 늘어날수록 스레드 수가 기하급수적으로 증가컨텍스트 스위칭 비용 증가메모리 낭비와 동기화 오버헤드 발생또한 Blocking I/O를 사용했기 때문에, 한 연결이 I/O 대기 상태라면 해당 스레드는 CPU를 제대로 활용하지 못했습니다.3. 해결 방법Non-b.. 2025. 8. 16. 이전 1 다음 반응형