λλ©μΈμμ λ°μν μ΄λ²€νΈλ₯Ό μ‘°ν©νμ¬ μ μ μκ² μλ¦Ό λ°μ‘
λλ©μΈ λ©μΈμ§λ₯Ό λ°μμ λ©μΈμ§ μ‘°ν© λ° μ μ₯ ν μλ¦Ό λλ©μΈμΌλ‘ μ λ¬. μ μ₯λ λ©μΈμ§λ μ€μΌμ€λ¬λ‘ μμ½ λ°μ‘μ μ¬μ© ν μμ .
messagehub
βββ application
β βββ dto
β β βββ MeetingReminderMessage.class
β β βββ MessageDto.class
β β βββ ScoreRangeDto.class
β βββ handler
β β βββ EventRoutingHandler.class
β βββ provider
β β βββ MessageProvider.class
β β βββ TargetUserProvider.class
β βββ scheduler
β β βββ ReminderPollingScheduler.class
β βββ service
β β βββ MessageHubRedisService.class
β βββ util
β βββ MessageFormatUtil.class
β βββ ReminderKeyUtil.class
βββ enums
β βββ AlarmType.class
β βββ MessageKey.class
β βββ MessageType.class
β βββ UuidStatus.class
βββ event
β βββ rabbitmq
β βββ config
β β βββ MessageHubExchangeConfig.class
β β βββ MessageHubQueueConfig.class
β β βββ MessageHubRabbitConfig.class
β βββ consumer
β β βββ MessageHubConsumer.class
β βββ producer
β βββ MessageHubProducer.class
βββ infra
βββ redis
βββ config
β βββ MessageHubRedisScriptConfig.class
βββ MessageHubRedisRepository.class
λλ©μΈμ ν΅μ¬ λΉμ¦λμ€ λ‘μ§μ΄ λͺ¨μ¬ μλ κ³μΈ΅.
ν΄λμ€ | μν |
---|---|
EventRoutingHandler |
μ 체 λ©μμ§ νλ¦ μ‘°μ¨, λ©μμ§ λλ©μΈλ³ 1μ°¨ λΆλ¦¬. |
Consumer μ΄λ²€νΈλ₯Ό λ©μμ§ νμ μ λ°λΌ λΆκΈ° μ²λ¦¬νκ³ Providerλ‘ μ λ¬ | |
MessageProvider |
λλ©μΈλ³ λ©μμ§ λ°μ΄ν°λ₯Ό μΈλΆν/μ‘°ν©. |
Redis μ μ₯/μμ λ MessageHubRedisService , |
|
μ μ μ‘°νλ TargetUserProvider λ‘ μμ |
|
TargetUserProvider |
λ©μμ§ λ°μ‘ λμ μ μ (μμ μ) μ 보λ₯Ό μ‘°ν/λ§€ν |
ReminderPollingScheduler |
Redisμ μ μ₯λ μμ½ μλ¦Ό λ©μμ§λ₯Ό μ£ΌκΈ°μ μΌλ‘ νμΈνκ³ λ°μ‘ νΈλ¦¬κ±° μ€ν |
MessageHubRedisService |
Redis κΈ°λ° λͺ¨μ μλ¦Ό μμ½Β·μ‘°νΒ·μμ Β·λ§νΉ λ° UUID μ€λ³΅ νμΈ μ²λ¦¬. |
30λΆ μ /ν루 μ μλ¦Ό μ μ₯, λ°μ‘ λμ μ‘°ν, λ°μ‘ ν μ€λ³΅ λ°©μ§ λ§νΉ, | |
μ€λλ λ°μ΄ν° μ 리 κΈ°λ₯ ν¬ν¨ | |
MessageFormatUtil |
λ©μμ§ ν€ + νλΌλ―Έν° κΈ°λ°μΌλ‘ μ€μ μλ¦Ό λ©μμ§ μμ±. messages.properties μ μ°λν΄ λ°μ‘ λ©μμ§ κ΄λ¦¬ |
ReminderKeyUtil |
Redis ZSet/Hash Key μμ± κ·μΉ κ΄λ¦¬ |