종우의 삶 (전체 공개)
쉬어가기 - Redisson은 무엇일까? 본문
동시성 처리에 사용했던 Redisson에 대해 좀 더 알아보기로 하였다. 어쨌든 내가 사용한 기능을 파악하는 것은 중요하니까.
https://github.com/redisson Redisson 깃허브에 위키 파일이 있다. 좋다. 실제 사용하는 방법에 대해 주로 작성되어 있다.
Redisson
Easy Redis Java client and Real-Time Data Platform - Redisson
github.com
Redisson과 Redis
애초에 Redisson은 Redis를 위한 Java 클라이언트 라이브러리이다.
Redis는 잘 알다시피 인메모리 데이터 구조 저장소로, 분산 캐시, 메시지 브로커, 큐 등 다양한 용도로 사용된다.
Redisson은 이러한 Redis의 기능을 Java 어플리케이션에서 쉽게 사용할수 있도록 해주는 도구인 것.
Redisson의 주요 특징:
1. 분산 캐싱 : 여러 서버에서 동일한 데이터에 빠르게 접근해야 할 때, Redisson의 Map 구조를 사용하여 key-value 형태로 데이터를 저장하고 조회한다.
2. 세션 관리 : 웹 어플리케이션에서 사용자 세션을 여러 서버에서 공유해야 할 때, 세션 Id를 Key로, 세션 데이터를 Value로 저장한다.
3. 분산 락 : 여러 서버에서 동시에 같은 리소스에 접근하는 것을 방지해야 할 때, Lock 인터페이스를 사용하여 크리티컬 섹션을 보호
4. 메시지 큐 : Redisson에도 Queue나 Topic을 사용하여 메시지를 발행 / 구독할 수 있다.
5. RateLimit : API 요청 제한이나 사용량 제어가 필요할 때, 초당 처리 가능한 요청 수를 제한할 수 있음.
6. 실시간 데이터 처리 : 실시간으로 데이터를 업데이트하고 클라이언트에 전달해야 할 때, Live Object를 사용하여 객체 변경을 실시간으로 감지하고 전파함
7.
이 외에도 분산 컴퓨팅, 캐시 동기화 등 다양한 상황들을 Java 환경에서 쉽게 사용할 수 있게 해준다. 분산 환경에서의 데이터 관리와 동기화 문제를 효과적으로 해결 할 수 있다.
기본적으로 MSA는 Redisson을 유용하게 사용할 수 있다. 데이터 동기화, 분산 락, 캐싱, 메시징 등을 사용해 복잡성을 줄이게 해줌. 사실상 굉장히 많은 기능이 있으나 사용하면서 필요할 때 찾아보면 될 것이다.
그렇다면 이번 프로젝트에서 redisson 의 어떤 기능을 사용했는지 알아보자.
https://jonggae.tistory.com/170
MSA Project - 대용량 요청 처리 테스트 (1만 건)
예약 구매 시나리오에 맞게, 특정 시간에 많은 주문이 몰리게되는 테스트를 진행했다. 주어진 상황특정 시간에 상품이 오픈되면 한정된 재고 (eg. 10개) 를 1만명이 구매하려한다.구매, 결제 과
jonggae.tistory.com
이전 포스팅에서
분산 락을 구현하는데 사용되었다. 해당 글을 참고해보자.
동시에 여러 요청들이 들어오는 동시성 문제를 해결하기 위해서 락 획득, 락 유지 시간을 조절해가며 테스트를 했었다.
여러 기능 중 하나를 사용해보았으니 다른 기능들이 쓰일 날도 오지않을까..
'개발 > Spring' 카테고리의 다른 글
쉬어가기 - Spring의 기본 지식 확인하기 (0) | 2024.08.07 |
---|---|
MSA Project - 대용량 요청 처리 테스트 (JMeter) (0) | 2024.07.25 |
MSA Project - 대용량 요청 처리 테스트 (1만 건) (0) | 2024.07.22 |
MSA Project - 서비스 간의 통신 (0) | 2024.07.19 |
MSA Project - 서비스 분리하기 (0) | 2024.07.16 |