Redis6 장애 전파를 방지하기 위한 Circuitbreaker로 조회수 백업시스템 만들기 목차개요조회수 설계Circuit breaker주의 할 점그렇다면 어떻게 적용하는 것이 좋을까?더 나아가기1. 개요프로젝트를 진행하면서 각각의 게시글에 대한 조회수를 어떻게 처리할까 고민을 하였다.게시글 중 인기 게시글의 경우 조회수를 Database로 올리게 된다면, DB의 부하가 심해질거를 예상하여 Redis 캐시를 도입하였다.이때 운영중인 Redis에 장애가 생긴다면 조회 요청이 실패할 뿐 아니라 지연된 응답으로 다른 서비스들에게도 영향을 미칠 수 있다.2. 조회수 설계게시글의 댓글, 좋아요 수의 경우 관계형 데이터베이스를 사용해 데이터의 일관성을 지키고 안전한 저장소에 영구적으로 저장했다. → 하지만 디스크 접근 비용과 트랜잭션 관리 비용이 크다. 반면, 조회수는 데이터 일관성이 덜 중요하고 트랜잭.. 2025. 8. 17. 대용량 트래픽 처리를 위한 경매 기능 최적화 목차 개요 경매 기능 구조 상품 가격을 위한 캐싱 실시간 최고 입찰액을 갱신하는 웹소켓 대용량 트래픽 처리를 위한 메시지 큐 결론 1. 개요 경매는 정해진 시간에 높은 가격을 제시한 회원이 상품 구매 자격을 얻는 거래체결 방식이다. 경매를 진행하면 순간적으로 많은 입찰 요청이 들어 오고 실시간으로 상품 가격이 변동 된다. 수많은 트래픽과 사용자 경험을 개선하기 위해 프로젝트에서는 Redis, WebSocket, RabbitMQ를 이용해 경매 기능을 최적화 한다. 2. 경매 기능 구조 경매 기능은 프로젝트의 핵심 기능이며 요구사항은 다음과 같다. 상품을 보고 있는 사람은 매순간 변경된 입찰 최고 금액을 실시간으로 화면에 보여져야 한다. 높은 가격을 먼저 서버로 요청한 사람이 구매권한을 가진다. 즉, 순서에.. 2024. 3. 20. Redis 캐시 적용으로 성능 개선하기 목차 개요 캐시(Cache)란? 입찰 생성 시 Redis 캐시 업데이트 최고 입찰 금액 조회시 Redis 캐시 사용 nGrinder 성능 테스트 결론 1. 개요 경매에서 입찰 금액은 실시간으로 관리되고 입찰은 순간적으로 많은 요청이 발생 할 수 있다. 입찰이 많이 몰리게 되면 DB에서 입찰 금액을 빈번하게 가져와 입찰금액이 갱신하고 있는 상황이었다. 최고 입찰액을 가져오는 시간을 줄이고자 DB조회 대신 Redis에서 값을 빠르게 가져와서 응답하고자 하였고 nGrinder로 테스트를 통해 성능이 얼마나 차이나는지 비교해 보자. 2. 캐시(Cache)란? 캐시를 간단하게 말하면 데이터를 미리 복사해 놓는 임시 저장소를 말한다. 접근 시간이 긴 하드디스크를 읽는 대신 빠르게 접근 할 수 있도록 도와주는 역할을.. 2024. 3. 15. Kafka vs RabbitMQ vs Redis 목차 개요 Kafka RabbitMQ Redis Pub/Sub 결론 1. 개요 Kafka, RabbitMQ, Redis의 Pub/Sub 을 비교하면 각각의 시스템이 메시징 패턴을 구현하는 방식과 그에 따른 성능, 확장성 유연성 측면에서 상이한 특징을 나타낸다. 이 세가지 시스템을 각각의 관점에서 간단하게만 비교해보려고 한다. 2. Kafka 개념 토픽 기반의 Pub/Sub 모델을 사용한다. Producer(게시자)는 특정 토픽에 메시지를 게시하고, Consumer(구독자)는 관심 있는 토픽을 구독하여 메시지를 소비한다. 성능 및 확장성 높은 처리량과 데이터 내구성, 분산 처리에 강점을 가지며, 대량의 데이터 스트림 처리에 최적화되어 있다. 대규모 시스템에서 확장성이 매우 뛰어난다. 유연성 뛰어난 확장성과.. 2024. 3. 12. Scale out시 세션불일치 방지를 위한 Redis 선정과정 목차 개요 Redis 2-1. 특징 Memcached 3-1. 특징 그래서 차이점이 뭐야? 결론 1. 개요 실제 업무 상황에서 발생 할 수 있는 상황을 만들고자, Scale out에서 세션불일치 방지하려고 한다. 그 과정에서 Redis와 Memcached 같이 메모리 기반 저장소를 비교하고 프로젝트 상황에 맞는 저장소를 선정해보자. 2. Redis Redis(Re mote Di ctionary Se rver)는 Key-Value 쌍의 해시 맵과 같은 구조를 가진 비관계형 DBMS이다. 오픈 소스 기반으로 인메모리 데이터 구조 저장소로 메모리에 데이터를 저장한다. 따라서, 별도의 쿼리문이 필요 하지 않고, 인메모리에 저장되기 때문에 상당히 빠른 속도로 처리 할 수 있다. 2-1. 특징 성능 메모리에 저장되.. 2024. 2. 23. Redis란? 목차Redis란?Redis의 특징동시성 Race Condition 해결결론1. Redis란?REDIS는 REmote DIctionary Server의 약자로 외부에서 사용 가능한 Key-Value 쌍의 해시 맵 형태의 서버라고 생각할 수 있다.In-Memory 데이터베이스이며 다양한 데이터 구조체를 지원한다.디스크에 데이터를 쓰는 구조가 아니라 메모리에서 데이터를 처리하기 때문에 작업 속도가 상당히 빠르다.즉, Redis는 고성능 키-값 저장소로서 String, list, hash, set, sorted set 등의 자료 구조를 지원하는 NoSQL이다.2. Redis의 특징영속성을 지원하는 인 메모리 데이터 저장소다양한 자료 구조를 지원함.싱글 스레드 방식으로 인해 연산을 원자적으로 수행이 가능함.읽기 .. 2023. 11. 14. 이전 1 다음