graphql 쓸 때 pub/sub을 사용해본 적이 있을 것이다.
pub/sub 모델은 특정한 주제(Topic)에 대하여 구독(Subscribe)한 모두에게 메시지를 발생(Publish)하는 통신 방법이다.
구독 시대를 살고 있어서 자연스레 이해할 수 있겠지만, 유튜브를 예로 들면, 특정 유튜버를 구독하고, 그 유튜버의 활동에 의해 구독자들은 메세지를 받는다. 너무나도 직관적이다. 이런 모델을 Pub/Sub 모델이라고 일반화하여 부를 수 있을 것이다. 모바일에서 notification을 날릴 때, 그룹 chatting를 중계할 때 등이 이러한 원리겠죠.
따라서, Pub/Sub 모델은 Redis에 국한된 모델이 아니라 일반적인 모델이다. Kafka, RabbitMQ 등에서도 pub/sub 모델을 구현할 수 있다. Redis에서 pub/sub 모델을 구현하면 가볍고 빠르다는 장점이 있어 redis로 pub/sub 모델을 구현하는 경우도 많다.
* 메세징 시스템으로는 주로 Kafka, RabbitMQ, ActiveMQ, MSMQ 등이 사용된다.
우분투 3대를 돌려서 간단하게 pub/usb 모델을 구현해보자.
redis에서는 독특하게, 여러 채널을 동시에 subscription할 수 있다.
publish [channel] [message]
subscribe [channel...]
subscribe test1 test2 // test1과 test2라는 채널을 구독함
publish test1 "hello from test1" // test1을 구독하고 있는 사람들은 이 메세지를 받음
참고한 글)
'DB, ORM > 🟥 Redis' 카테고리의 다른 글
Redis 운영 이슈와 효율적 이용을 위한 redis.conf 설정 (0) | 2020.12.30 |
---|---|
Redis를 활용한 Look aside 방식의 캐싱 in node.js (0) | 2020.12.29 |
Redis Persistence (0) | 2020.12.29 |
Redis 기초 : Redis의 특성과 Collection (0) | 2020.12.28 |