Open attlet opened 1 week ago
사용자가 subscribe --> 해당 사용자에 대한 SseEmitter 생성, 저장
알람 발생 시 notification 엔티티 저장 --> SseEmitter map에서 조회해서 알람 사용자에게 전송
메시지 큐 솔루션 선택
장점
단점
장점
단점
장점
단점
메시지량이 적으면 비효율적
-> 공부를 위해 redis pub/sub부터 시작해서 모두 적용할 수 있도록 하기
spring:
profiles: dev
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
queue: my_queue
notification:
broker: rabbitmq
build.gradle.kts에 의존성 추가
//rabbitMQ
implementation("org.springframework.boot:spring-boot-starter-amqp")
spring:
redis:
host: localhost
port: 6379
build.gradle.kts에 의존성 추가
dependencies {
implementation("org.springframework.boot:spring-boot-starter-data-redis")
}
redis pub/sub의 경우 producer에서 데이터 전송 시 notification 객체를 그냥 전송하면 오류 발생. json이나 문자열 등으로 직렬화가 필요.
ex) notification.toJson() 사용
redis consumer는 추가로 MessageLister를 상속받아서 onMessage 메서드를 구현
메시지 큐 오픈소스 도입해서 알람 개선
기대 효과