Pub/Sub이란?

pub/sub이란 하나의 채널을 열어놓고 여러개의 프로그램이 혹은 여러 서버가 해당 채널을 구독하게 한 뒤 서버에서 이벤트가 발생하면 해당 내용을 발행하면 모든 구독자들이 해당 이벤트를 받을 수 있는 기능이 있습니다.

 

하나의 채널을 열어놓고 여러개의 프로그램이 혹은 여러 서버가 해당 채널을 구독(subscribe)한 뒤 한 서버에서 이벤트가 발생하면 해당 내용을 발행(publish)하면 모든 구독자들이 해당 이벤트를 받을 수 있는 기능이 있습니다. 이 기능은 다양한 용도로 사용이 가능한데, 예를들면 공용의 저장소를 만들어 놓은 상황에서 하나의 프로그래밍 사용자가 업로드한 이미지를 공용의 저장소에 올려놓고 파일을 올려놨다고 알림메세지를 보내면 모든 서버들이 해당 파일을 다운 받거나 혹은 변경된 데이터를 모두가 알 수 있게공지하듯 알리는데 이보다 더 좋은 기능이 없다.

매번 모든 서버를 동기화 하는일을 귀찮고 번거로운 일/특히나 사진

하나의 공용스토리지가 있다고 가정을 한다. 그리고 10대의 서버가 있고 각각의 서버들은 하나의 redis 서버에서 구독 [subscribe]을 하고 있다고 가정하겠습니다. 그러면 사용자가 그 중 하나의 서버에 접속하여 이미지를 올리면, 해당 서버에서는 공용스토리지에 이미지 파일을 업로드 하고 redis새로운 파일이 있음 파일명은 뭐뭐고 위치는 어디임이라고 알립니다(publish) 그러면 구독중이던 모든 서버로 해당사항은 즉시 알려지게 되고, 해당 모든 서버들은 해당 파일을 다운로드 받아서 저장하게 됩니다.

댓글 남기기