본문 바로가기

dev/스프링

Spring Boot Redis Subscriber

저번에 작성한 Spring Boot Redis Publisher에 이어 Subscriber 구현하는 방법입니다.

 

pom.xml

 

spring-boot-starter-data-redis 라이브러리를 추가합니다.

 

RedisSubscriberConfig.class

 

Redis 채널로부터 메시지를 수신하는 설정 클래스입니다.

 

application.yml에 있는 Redis 메시지 채널명을 속성으로 받습니다.(18 ~ 19라인)

 

Redis 메시지 수신 담당하는 redisSubscriberService 빈을 주입받습니다.(21 ~ 22라인)

 

Redis 메시지 수신하는 컨테이너를 빈으로 등록합니다.(24 ~ 32라인)

 

redisConnectionFactory를 통해 Redis에 연결하고, messageListenerAdapter를 통해 실제 메시지를 수신하는 리스너를 등록합니다.

 

Redis 메시지를 실제로 수신하는 리스너를 빈으로 등록합니다.(34 ~ 37라인)

 

앞에서 주입한 redisSubscriberService를 통해서 실제 메시지 수신을 처리합니다.

 

RedisSubscriberService.class

 

Redis 채널로부터 메시지를 수신하는 클래스입니다.

 

Redis 메시지를 수신하기 위해 MessageListener 인터페이스를 구현합니다.(8라인)

 

해당 인터페이스의 onMessage 메소드를 오버라이딩합니다(10 ~ 16라인)

 

메시지를 수신하면 해당 메시지의 채널과 내용을 Sysout으로 출력합니다.

 

application.yml

 

application.yml에 Redis IP와 Port, 채널명을 등록합니다.

 

spring.redis.channel 속성은 스프링에서 지원하는 것이 아니라 임의로 작성한 속성명입니다.

 

Redis 메시지 발행 화면

 

Redis의 "test-channel" 이란 채널에 "test message." 메시지를 발행합니다.

 

Redis 메시지 수신 화면

 

해당 채널로부터 메시지를 수신한 것을 확인할 수 있습니다.

 

지금 작성한 코드는 Redis 메시지를 Sysout으로 출력한 거라 부족한 점이 있습니다.

 

그래서 다음에는 수신한 Redis 메시지를 클라이언트에게 웹 소켓을 통해 전달하는 것을 해보겠습니다.

'dev > 스프링' 카테고리의 다른 글

Spring Boot Redis 연계  (0) 2024.03.28
Spring Boot Redis Suscriber WebSocket  (0) 2024.02.29
Spring Boot Redis Publisher  (0) 2024.02.05
Spring Boot Session Store Type Redis  (0) 2024.01.25
Spring Boot yml 외부 참조  (0) 2023.12.02