전체 글 38

카프카 와 sse 기능을 사용한 알림 기능 만들기 #1

사용배경 : 필자는 경매 시스템을 개발하는 과정에서 성능개선을 위해 필요한 사항을 찾아보던 도중 , 카프카를 사용하여 실시간으로 동일한 작물에 대한 희망 입찰 금액을 제시하는 상황이 동시에 많이 발생하는 경우, 서버의 지연이 발생할 가능성이 존재함을 인식하고, 이를 개선하고자  카프카를 사용하여 동시에 많은 요청을 대량으로 저장하고 비동기적으로 처리하기 유용한 카프카를 사용하였습니다. 비동기를 위한것이라면 , async 어노테이션을 사용해도 되지않냐 는 질문이 있을수 있다고 생각합니다..하지만 둘은 이러한 차이가 있습니다. 1. Kafka를 통한 비동기 처리개념: Kafka는 메시지 브로커로서, 생산자가 메시지를 Kafka에 전송하고 소비자가 이를 비동기적으로 소비합니다. 즉, 생산자는 메시지를 보내고,..

카테고리 없음 2024.12.01

세마포어와 뮤텍스 차이

뮤텍스(mutex)와 세마포어(semaphore)는 모두 동기화 메커니즘으로, 멀티스레드 환경에서 자원에 대한 접근을 제어하는 데 사용됩니다. 뮤텍스 (Mutex)정의: 뮤텍스는 "상호 배제(mutual exclusion)"의 약자로, 한 번에 하나의 스레드만 특정 자원에 접근할 수 있도록 보장합니다.스레드 수: 뮤텍스는 오직 하나의 스레드만 자원에 접근할 수 있도록 허용합니다. 즉, 뮤텍스를 잠그면 다른 스레드는 해당 자원에 접근할 수 없습니다.용도: 주로 공유 자원에 대한 독점적인 접근을 보장할 때 사용됩니다.  세마포어 (Semaphore)정의: 세마포어는 특정 자원에 접근할 수 있는 스레드의 수를 제한하는 카운터입니다.스레드 수: 세마포어는 한 개 이상의 스레드가 동시에 자원에 접근할 수 있도록 ..

카테고리 없음 2024.11.21

@redishash 사용예

Redis의 Hash 자료구조를 사용할 때 Spring Data Redis에서 제공하는 @RedisHash 어노테이션을 활용할 수 있습니다. 이 어노테이션을 사용하면 Redis의 Hash를 쉽게 매핑할 수 있습니다.1. 모델 클래스에 @RedisHash 추가아래와 같이 LoanApplication 클래스에 @RedisHash 어노테이션을 추가합니다.javapackage com.example.loanapp.model;import org.springframework.data.redis.core.RedisHash;import java.io.Serializable;@RedisHash("loan_application") // Redis의 Hash 이름public class LoanApplication implem..

카테고리 없음 2024.10.16