저번에 작성한 Spring Boot Redis Publisher에 이어 Subscriber 구현하는 방법입니다.
spring-boot-starter-data-redis 라이브러리를 추가합니다.
Redis 채널로부터 메시지를 수신하는 설정 클래스입니다.
application.yml에 있는 Redis 메시지 채널명을 속성으로 받습니다.(18 ~ 19라인)
Redis 메시지 수신 담당하는 redisSubscriberService 빈을 주입받습니다.(21 ~ 22라인)
Redis 메시지 수신하는 컨테이너를 빈으로 등록합니다.(24 ~ 32라인)
redisConnectionFactory를 통해 Redis에 연결하고, messageListenerAdapter를 통해 실제 메시지를 수신하는 리스너를 등록합니다.
Redis 메시지를 실제로 수신하는 리스너를 빈으로 등록합니다.(34 ~ 37라인)
앞에서 주입한 redisSubscriberService를 통해서 실제 메시지 수신을 처리합니다.
Redis 채널로부터 메시지를 수신하는 클래스입니다.
Redis 메시지를 수신하기 위해 MessageListener 인터페이스를 구현합니다.(8라인)
해당 인터페이스의 onMessage 메소드를 오버라이딩합니다(10 ~ 16라인)
메시지를 수신하면 해당 메시지의 채널과 내용을 Sysout으로 출력합니다.
application.yml에 Redis IP와 Port, 채널명을 등록합니다.
spring.redis.channel 속성은 스프링에서 지원하는 것이 아니라 임의로 작성한 속성명입니다.
Redis의 "test-channel" 이란 채널에 "test message." 메시지를 발행합니다.
해당 채널로부터 메시지를 수신한 것을 확인할 수 있습니다.
지금 작성한 코드는 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 |