Redis Pub/Sub는 게시자가 채널/주제에 게시하고 여러 고객이 해당 채널/주제를 구독 할 수있는 실시간 메시징 시스템을 구현합니다.
마지막 튜토리얼“ Redis In-Memory 데이터베이스에 대한 초보자 안내서 ”우리는 메모리 내 데이터베이스로서 Redis에 대해 배웠습니다. 그리고 이것이 NOSQL 데이터베이스와 어떻게 경쟁하는지. 우리는 또한 Redis를 어디에서 사용하고 사용하는 것이 최적이 아닌지 배웠습니다. 이제이 지식 기반을 바탕 으로이 자습서에서 Redis Pub/Sub, 어떻게 작동하는지, 그리고 Redis Publish/Subscribe System의 가장 잘 활용하는 방법에 대해 배웁니다. 시작하자.
게시/구독 패턴이란 무엇입니까?
게시/구독 또는 짧은 Pub/Sub에서 메시지의 발신자와 수신자가 해당 메시지를 직접 교환하지 않는 메시징 패턴입니다. 오히려, 메시지의 발신자는이를 채널/주제에 게시합니다. 그리고 그 메시지를 받고자하는 모든 사람들은 채널/주제를 구독합니다. 그래서 그것은 더 기술적 인 설명이었습니다. 우리는 일상 생활에서 YouTube, Twitter, Facebook 또는 Instagram과 같은 소셜 미디어 플랫폼을 사용하는 동안이 Publish-Subscribe 모델을 매우 자주 사용합니다. 컨텐츠 제작자가 컨텐츠를 생산하고 관심있는 사람들은 컨텐츠를 따르거나 구독합니다. 이것이 바로 소프트웨어 아키텍처에서도 정확히 PUB/하위 패턴이하는 일입니다.
술집/서브는 어떻게 작동합니까?
소프트웨어 개발에서 재사용성에 대한 강조는 매우 높습니다. 모든 설계 패턴은 재사용 가능한 구성 요소 또는 모듈을 기반으로합니다. 따라서 Pub/Sub를 이해하려면이 아이디어가 어디에서 왔는지, 개발자가 어떻게 패턴으로 찾았는지 살펴 봐야합니다. 소프트웨어 아키텍처가 발전하고 모듈 기반이 많아지면서 모듈과 구성 요소 사이에 더 많은 통신 / 메시징이 증가했습니다. 마찬가지로, 모듈을 입력하고 출력을 제공하는 처리 장치로 생각하십시오. 각 입력은 실제로 처리 장치가 처리하고 다른 메시지를 출력으로 생성하는 메시지입니다. 다른 모듈에 대한 입력이 될 것입니다. 따라서 이러한 메시징의 증가에는 확장 가능한 응용 프로그램을 갖기 위해서는 모듈과 구성 요소가 종속성없이 독립적으로 작동 할 수 있어야하는 특별한주의가 필요했습니다. 따라서 게시/구독 패턴이 나왔습니다. 많은 Pub/Sub Systems에서 게시자는 중개자 메시지 중개인 또는 이벤트 버스에 메시지를 게시하고 가입자는 해당 브로커와 구독을 등록하여 브로커가 필터링을 수행 할 수 있습니다. 브로커는 일반적으로 스토어 및 포워드 기능을 수행하여 게시자에서 가입자로 메시지를 라우팅합니다. 또한 브로커는 라우팅하기 전에 큐의 메시지를 우선 순위로 정할 수 있습니다.
언제 Pub/Sub를 사용해야합니까?
채팅 응용 프로그램은 PUB/SUB 패턴의 전형적인 사용 사례입니다. 채팅 응용 프로그램에서 참가자는 PUB/SUB 주제로 지정된 채팅방을 구독 할 수 있습니다. 사용자가 대화방에 메시지를 보내면 채팅 앱 인스턴스는 해당 대화방 주제에 대한 메시지를 게시합니다. 주제의 가입자는 메시지를받습니다. 메시지 대기열 서비스 / 메시지 대기열 또는 배치 처리 응용 프로그램은 Pub / Sub Pattern을 사용할 수도 있습니다. 특정 작업을 원하는 모든 사람들이 메시지를 대기열에 게시하고 해당 대기열에 가입 한 처리 장치는 작업을 처리하기위한 메시지를 받게됩니다. 술집/하위 패턴의 몇 가지 장점에 대해 논의하겠습니다.
- 시스템 구성 요소 간의 느슨한 커플 링
- 시스템 전체 워크 플로의 더 나은보기
- 더 나은 통합을 가능하게합니다
- 더 부드러운 확장 성을 보장합니다
- 일관된 신뢰성을 보장합니다
- 탄력성을 만듭니다
- 소프트웨어 모듈화
- 언어 불가지론 소프트웨어 개발
- 비즈니스 논리의 명확성
- 응답을 향상시킵니다
Redis Pub/Sub를 사용하는 방법
Redis 설치의 경우 마지막 자습서을 참조 할 수 있습니다. 이 예는 게시자 및 가입자 개념의 작동 방식을 설명합니다. 다음 예에서는 한 클라이언트가 ‘Redischat’이라는 채널을 구독합니다.
redis 127.0.0.1:6379> SUBSCRIBE redisChat
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "redisChat"
3) (integer) 1
이제 두 명의 클라이언트가 ‘Redischat’이라는 동일한 채널에 메시지를 게시하고 위에 포함 된 클라이언트가 메시지를 받고 있습니다.
redis 127.0.0.1:6379> PUBLISH redisChat "Redis is a great"
(integer) 1
redis 127.0.0.1:6379> PUBLISH redisChat "Learn redis"
(integer) 1
1) "message"
2) "redisChat"
3) "Redis is a great"
1) "message"
2) "redisChat"
3) "Learn redis"
결론
이 튜토리얼에서는 게시/구독 디자인 패턴에 대해 배웠습니다. 그리고 Redis Pub/Sub가 어떻게 작동하는지 탐구했습니다. 또한 Redis Pub/Sub, 실시간 메시징의 가장 좋은 사용 사례가 무엇인지 탐구했습니다. 다가오는 튜토리얼에서는 Redis를 자세히 살펴보고 Node.js와 함께 Redis Pub/Sub를 사용하여 실시간 채팅 응용 프로그램을 구축하는 방법을 설명합니다.