SlideShare a Scribd company logo
Publisher-Subscriber Pattern
charsyam@naver.com
메타포:
신문 구독
싞문 메타포
• 구독자에게만 신문을 배달한다.
• 구독과 해지가 자유롭다.(실제 신문은 해지가 어렵다 -_-)
• 여러 개의 신문을 구독할 수 있다.
• 조선일보에서 한겨레 신문을 구독 할 수 도 있다.
Alias
• Observer
• Dependents
Force 1 : 하나 이상의 Component에 통보
Component
Component
OBJECT
NOTIFY
Force 2 : Interface 로 만 통싞
Component A
OBJECT
Component B Component C
Observer Interface
Loosely Couple
Solution
• 하나의 컴포넌트만 게시자
• 변경사항에 종속된 모든 컴포넌트는 그 게시자의 구독자에 해당
– 구독자는 observer
Publisher
SubscriberSubscriberSubscriberSubscriberSubscriberREGISTER
NOTIFY
제공 수준
• 각기 다른 클래스들이 게시자나 구독자의 역할을 할 수 있도록
– 추상 기본 클래스 도입
• 게시자는 내부 상태에 어떤 변화가 일어났을 때, 구독자에게 통지를 보낼
지 결정할 수 있다.
• 한 객체가 여러 게시자들의 구독자가 될 수 있다.
• 한 객체가 게시자이자 동시에 구독자의 역할을 모두 수행할 수 있다.
• 구독과 통지를 각기 다른 이벤트 유형으로 구분할 수 있다.
• 게시자는 구독자들에게 통지를 보낼 때 데이터 변경사항 중 일부만 선택
해 보낼 수 있다.
Push Model VS Pull Model
Push Model Pull Model
특징 모든 관련 정보를 NOTIFY 시
에 함께 전달
이벤트 변경만 통보.
실 데이터는 다시 가져와야 한다.
장점 Subscriber 들이 모든 정보가
필요할 때 유용
Subscriber 들이 일부 정보만 필요
할 경우
정보 변경시에 유연성이 높음
단점 전달하는 데이터 형식이 고정
되므로, 유연성 부족
메시지 전달 비용이 비싸짐
Variant
• GateKeeper
• Producer - Consumer
• Event Channel
– Publisher – Subscriber 의 Decouple
– Publisher 에서 바라보면 Subscriber 역할
– Subscriber 에서 바라보면 Publisher 역할

More Related Content

PPTX
Arquitetura da plataforma com o Biztalk Server
PPTX
Team10:TenTen for blackboard
PPTX
블랙보드 개발 중인 기능
PPTX
Publish Subscriber messaging pattern
PDF
Pattern and EA
PPTX
Design pattern study 6 command pattern
PPTX
Scalable system design patterns
PDF
Design patterns 스터디 - Singleton 패턴
Arquitetura da plataforma com o Biztalk Server
Team10:TenTen for blackboard
블랙보드 개발 중인 기능
Publish Subscriber messaging pattern
Pattern and EA
Design pattern study 6 command pattern
Scalable system design patterns
Design patterns 스터디 - Singleton 패턴

Viewers also liked (19)

PPTX
Observer pattern dragor
ODP
Design Pattern 3
PPTX
Api design for c++ pattern
PDF
비전공자의 자바스크립트 도전기
PDF
Aplicação de Padrões de Projeto para a melhoria da manutenabilidade de software
PDF
Design patterns 스터디 -strategy패턴
PDF
Publish-Subscribe Middlewares
PPT
Padrões de Projeto - Observer
PPTX
퍼블리셔, 디자인을 퍼블리싱하다
PPTX
Learn design pattern-1
ODP
Desing Pattern-2
PPSX
Padrão de Projeto Observer
PDF
4. publish / subscribe
ODP
Design pattern 4
ODP
Padrões de Projeto para Jogos
PPTX
[0410 박민근] 기술 면접시 자주 나오는 문제들
PPTX
예제로 보는 Pattern 연상법
PPTX
Publish & Subscribe to events using an Event Aggregator
PDF
Padrões de Projeto de Software
Observer pattern dragor
Design Pattern 3
Api design for c++ pattern
비전공자의 자바스크립트 도전기
Aplicação de Padrões de Projeto para a melhoria da manutenabilidade de software
Design patterns 스터디 -strategy패턴
Publish-Subscribe Middlewares
Padrões de Projeto - Observer
퍼블리셔, 디자인을 퍼블리싱하다
Learn design pattern-1
Desing Pattern-2
Padrão de Projeto Observer
4. publish / subscribe
Design pattern 4
Padrões de Projeto para Jogos
[0410 박민근] 기술 면접시 자주 나오는 문제들
예제로 보는 Pattern 연상법
Publish & Subscribe to events using an Event Aggregator
Padrões de Projeto de Software
Ad

More from DaeMyung Kang (20)

PPTX
Count min sketch
PDF
PDF
Ansible
PDF
Why GUID is needed
PDF
How to use redis well
PPTX
The easiest consistent hashing
PDF
How to name a cache key
PDF
Integration between Filebeat and logstash
PDF
How to build massive service for advance
PDF
Massive service basic
PDF
Data Engineering 101
PDF
How To Become Better Engineer
PPTX
Kafka timestamp offset_final
PPTX
Kafka timestamp offset
PPTX
Data pipeline and data lake
PDF
Redis acl
PDF
Coffee store
PDF
Scalable webservice
PDF
Number system
PDF
webservice scaling for newbie
Count min sketch
Ansible
Why GUID is needed
How to use redis well
The easiest consistent hashing
How to name a cache key
Integration between Filebeat and logstash
How to build massive service for advance
Massive service basic
Data Engineering 101
How To Become Better Engineer
Kafka timestamp offset_final
Kafka timestamp offset
Data pipeline and data lake
Redis acl
Coffee store
Scalable webservice
Number system
webservice scaling for newbie
Ad

Publisher subscriber pattern

  • 3. 싞문 메타포 • 구독자에게만 신문을 배달한다. • 구독과 해지가 자유롭다.(실제 신문은 해지가 어렵다 -_-) • 여러 개의 신문을 구독할 수 있다. • 조선일보에서 한겨레 신문을 구독 할 수 도 있다.
  • 5. Force 1 : 하나 이상의 Component에 통보 Component Component OBJECT NOTIFY
  • 6. Force 2 : Interface 로 만 통싞 Component A OBJECT Component B Component C Observer Interface Loosely Couple
  • 7. Solution • 하나의 컴포넌트만 게시자 • 변경사항에 종속된 모든 컴포넌트는 그 게시자의 구독자에 해당 – 구독자는 observer Publisher SubscriberSubscriberSubscriberSubscriberSubscriberREGISTER NOTIFY
  • 8. 제공 수준 • 각기 다른 클래스들이 게시자나 구독자의 역할을 할 수 있도록 – 추상 기본 클래스 도입 • 게시자는 내부 상태에 어떤 변화가 일어났을 때, 구독자에게 통지를 보낼 지 결정할 수 있다. • 한 객체가 여러 게시자들의 구독자가 될 수 있다. • 한 객체가 게시자이자 동시에 구독자의 역할을 모두 수행할 수 있다. • 구독과 통지를 각기 다른 이벤트 유형으로 구분할 수 있다. • 게시자는 구독자들에게 통지를 보낼 때 데이터 변경사항 중 일부만 선택 해 보낼 수 있다.
  • 9. Push Model VS Pull Model Push Model Pull Model 특징 모든 관련 정보를 NOTIFY 시 에 함께 전달 이벤트 변경만 통보. 실 데이터는 다시 가져와야 한다. 장점 Subscriber 들이 모든 정보가 필요할 때 유용 Subscriber 들이 일부 정보만 필요 할 경우 정보 변경시에 유연성이 높음 단점 전달하는 데이터 형식이 고정 되므로, 유연성 부족 메시지 전달 비용이 비싸짐
  • 10. Variant • GateKeeper • Producer - Consumer • Event Channel – Publisher – Subscriber 의 Decouple – Publisher 에서 바라보면 Subscriber 역할 – Subscriber 에서 바라보면 Publisher 역할