본문 바로가기

Spring

pub sub 구조 ( 웹소켓 채팅 )

============================================================

 pub sub 구조는 일종의 Messaging 패턴이다. Message Queue 패러다임의 Sibiling 정도이다.

 

============================================================

간단히 설명하자면,

  

  # 보내는 사람이 받는사람을 직접적으로 설정하지 않고 메세지를 발행한다.

    '발행(publish)' 은 불특정 다수에게 메세지를 뿌린다고 보면 된다.

 

  # 이때,  받는사람은 발매인의 정보를 알지 못하고,

     자신의 Interest 에 충족하는 메세지만을 가져와 읽을 수(구독)  있다.

 

 

============================================================

그렇다면

   구독 하는 수신인은 (Subscriber)  생성된 (publish) 메세지를 모두 가져오는게 아니라,

   자신이 원하는 메세지만을 취하게 되는데

   

   구독자가 불특정 다수에게 뿌린 메세지들이

   특정 수신인에게만 전달되도록 중간 처리가 되고 있다는 것이다.

 

   이것을 Filtering 이라고한다.

============================================================

 이 Filtering을 하는 방법에는 크게 두가지가 있다.

     # Topicbase

         발행자가 메세지를 발행할 때, 특정 토픽class 를 지정해놓아서 

         특정 토픽 클래스를 구독해놓은 수신자가 읽을 수 있도록 한다.

     # Contentbase

         발행자가 별다른 셋팅을 하지 않는다.

         수신자가 자신이 관심잇는 내용이 있다면 가져다 읽도록 한다.

 

============================================================

pubsub구조

  publisher < = 메세지브로커 = > subscriber 형태 로 되어있다.

 

  수신인은 자신이 관심잇는 Topic 이나 Content 를 메세지 브로커에 등록해놓는다. 

  publisher가 메세지를 발행하면 메세지 브로커에게 메세지가 전송되고,

  알맞은 수신인에게 가게 되는 형태이다.