Redis
[#11] 재고 관리는 어떻게 해야될까? - 2. Lua Script
[#11] 재고 관리는 어떻게 해야될까? - 2. Lua Script
2022.11.07개요 이전 포스팅에서는 Redis의 Transaction을 사용하여 Cache Layer에서의 데이터 일관성을 보장하려고 시도했지만 Redis의 Transaction과 관련된 동작에서 Read-Write 패턴의 사용은 지원하지 않는 한계점이 있었습니다. 이런 한계점을 다시 해결해보기 위해서 Redis와 관련된 동작을 분석해보았습니다. 재고 관리와 관련된 Redis의 동작을 정리하면 크게 3가지로 요약할 수 있습니다. - Redis에 해당 제품의 재고가 없으면 Database에서 재고를 갖고 온 뒤 검증한다. - Redis에 해당 제품의 재고가 있다면 재고 수에 대해 검증한다. - 재고수를 차감한 뒤 Database에도 차감된 재고를 동기화한다. Redis에서 지원하지 않는 동작은 수행하지 못하는 것일까?..
[#8] Scale-Out을 위한 사전 준비 작업
[#8] Scale-Out을 위한 사전 준비 작업
2022.10.05개요 이전에 진행했던 Scale-Up을 통해서 Application Server의 Resource 부족의 재검증과 성능이 개선되는 것을 포스팅했었습니다. 마지막으로 결론은 '이제는 Scale-Out을 해야 할 때'라고 적었었습니다. 그래서 이번 포스팅을 통해 Scale-Out을 어떻게 진행했는지 보겠습니다. 수평적 확장(?) #1에서 개선하여 지속적으로 사용해온 Infra 구조도입니다. 바로 수평적 확장을 적용해보겠습니다. 현재 Client라고 볼 수 있는 nGrinder Agent가 요청을 분산해서 보낸다면 바로 수평적 확장이 가능하겠지만 추가적인 Component나 로직이 없으므로 기본적으로 기존에 요청을 보내던 Server로 보낼 것입니다. 비슷한 개념으로 MSA(Micro-Service Archi..