게시자-구독자 및 리액터 패턴의 차이점은 무엇입니까?


11

게시-구독리액터 패턴은 나에게 매우 유사합니다. 그들은 어떻게 다릅니 까?

두 패턴 모두에서 메시지가 가입자에게 간접적으로 전달됩니다 (리액터 패턴의 청취자).

관찰자 패턴 도 다른 두 패턴과 매우 유사 하다고 생각 합니다.

이러한 패턴의 주요 차이점은 무엇입니까?

답변:


12

링크에서 볼 수 있듯이 PubSub 패턴은 OOP 패턴이 아니라 네트워크 아키텍처 패턴 인 메시징 패턴 입니다.

리액터 패턴은 단일 스레드 이벤트 루프를 사용한 서버의 요청 처리와 관련된 것 입니다. 다시, 링크는 Node.js, Netty, Twisted 등과 같은 좋은 예를 보여줍니다.

마지막으로 Observer는 OO 코드에서 객체 간의 상호 작용 방식을 설명하는 OOP 디자인 패턴입니다.

이 세 가지 패턴은 서로 다른 도메인에서 나왔습니다.


6

Reactor = 요청을 받고 처리하는 단일 스레드 이벤트 루프. 이러한 요청은 SMTP 및 / 또는 HTTP를 통해 파일에서 일괄 적으로로드 될 수 있습니다. 처리 된 동시 응답은 순차적이 아니라 준비가되면 전달됩니다.

출판사 방출. 가입자가 소비합니다.

게시자 + 구독자 = 관찰자 패턴 (헤드 우선 디자인 패턴). 관찰자는 순차적으로 실행되며 일반적으로 완료 될 때까지 차단합니다.


2

PubSub는 메시징 큐 (MQ)와 관련이 있습니다. 분산 시스템에서 노드가 비동기 메시지를받는 방법과 관련이 있습니다.

리액터 패턴은 비동기 이벤트와 더 관련이 있습니다. 예를 들어, 비 차단 소켓은 리액터 패턴을 사용하여 네트워크 이벤트를 전달합니다 : READ, WRITE, CONNECT, ACCEPT

반응기 패턴을보다 잘 이해하기 위해 CoralReactor 를 확인할 수 있습니다 .

면책 조항 : 저는 CoralReactor의 개발자 중 하나입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.