Skip to content

Latest commit

 

History

History
45 lines (36 loc) · 1.5 KB

README.md

File metadata and controls

45 lines (36 loc) · 1.5 KB

notification

개발환경

  • Java 17
  • Spring Boot 3.2.3
  • Spring Batch
  • Spring Data JPA
  • Spring Cloud OpenFeign
  • Spring AMQP
  • Gradle
  • H2

MODULE

module

  1. 클라이언트는 예약 알림 등록 API를 호출한다.
  2. 스케줄러는 예약 시간이 된 예약된 알림을 대기 상태로 변경하는 API를 5초마다 호출한다.
  3. 예약된 알림을 대기 상태로 변경하는 API는 대상들을 조회 후 발송 대기 상태로 변경하여 DB에 업데이트 한다. 동시에, 대상 알림들을 발송 대기 메시지 큐에 전송한다.
  4. 발송 서비스의 발송 대기 큐 컨슈머는 큐에 들어온 대상을 실제 발송 처리를 한 후 결과를 알림 상태 변경 큐에 전송한다.
  5. 알림 서비스의 상태 변경 큐 컨슈머는 큐에 들어온 대상을 상태 변경 처리 후 DB에 업데이트 한다.

CLASS DIAGRAM

class_diagram

API

[알림 예약]

[예약 알림 발송]

로컬 테스트 RabbitMQ

# 볼륨 생성 (최초)
$ docker volume create rabbitmq_data

docker run --name rabbitmq -d \
-v rabbitmq_data:/var/lib/rabbitmq \
-p 15672:15672 \
-p 5672:5672 \
-e RABBITMQ_DEFAULT_USER=ysrabbit \
-e RABBITMQ_DEFAULT_PASS=ysrabbit \
rabbitmq:3-management