🔗 Distributed System
부하 테스트로 알아본 적절한 DB 선택(RDBMS, OpenSearch, MongoDB)
기존에 NoSQL은 정규화가 필요하지 않은 데이터를 효율적으로 저장하거나 조회하기 위해 OpenSearch, MongoDB 등을 선택할 수 있다고 생각했습니다.실제로 이 것에 관해 Json 타입의 데이터를 어디에 넣을지 고민한 글도 있습니다. 물론 이 말도 틀린 말은 아닙니다.하지만 이번에 DB에 대한 부하 테스트를 해보면서 NoSQL을 선택할 더 중요한 이유를 찾게 되었고 단순히 데이터의 형태에 따라 DB를 결정하는 것이 아닌 기능 요구 사항에 따라 적절한 DB를 어떻게 선택할 수 있을지 고민할 수 있게 되어서 글을 작성합니다. 일단 거두절미하고 바로 결과를 보겠습니다.부하 테스트 결과부하 테스트는 K6로 진행했으며 5초마다 유저 사용량이 100명씩 증감되어 총 100~500명이 25초 동안 이용하는 ..
[Kafka] Kafka Streams 사용법
개요Kafka Streams를 사용하면 특정 시간동안 Kafka에 인입되는 데이터를 집계해서 통계치를 추출할 수 있습니다.토픽에 있는 데이터를 빠른 속도로 실시간으로 변환하여 다른 토픽에 적재할 수 있는 것이 기본 동작 방식입니다.아래 예제 코드는 깃헙에 올려놨습니다.기본 코드아래는 /a라는 메소드 요청에 대해 시간 별로 요청 건 수를 통계화해서 /b로 확인하는 코드입니다.결과만 보면 /a라는 메소드는 14시에 2번, 15시에 4번 이용했다는 의미가 됩니다.@RestController@RequestMapping("/api")@RequiredArgsConstructorpublic class ApiController { private final ApiService apiService; @PostM..