ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Reactor 패턴
    디자인패턴 2014. 9. 3. 09:00
    반응형

    동시에 들어오는 서비스 처리 요청을 관리하는 이벤트 처리 패턴.

    구조
    Resources : 시스템에 입력을 제공하거나 시스템에서 나온 결과를 소비하는 모든 자원

    Synchronous Event Demultiplexer : 모든 자원을 블록하기위해 이벤트 루프를 사용함. 자원에서 블록킹없이 동기화 연산을 시작할수 있게 됐을 때, 디멀티플렉서(Demultiplexer)가 자원을 디스패처에 보냄.

    Dispatcher : 요청 핸들러의 등록과 해제를 처리함. 디멀티플레서에서 연결된 요청 핸들러에 자원을 할당함.

    Request Handler : 요청 핸들러와 연결된 자원이 정의된 애플리케이션.


    특징
    모든 리엑터 시스템은 싱글 스레드임. 

    장점
    리엑터 패턴은 리엑터 구현에서 애플리케이션에 관련된 코드가 완벽하게 분리됨.
    그래서 애플리케이션 컴포넌트들이 모듈화되고 재사용 가능한 부분들로 분리될 수 있음.
    시스템을 멀티스레드로 인한 복잡성에서 보호해 줌.

    제한
    디버깅하기 어려움.
    요청 핸들러를 동기적으로 호출하기 때문에 최대 동시성에 제한이 있음.
    요청 핸들러 뿐만 아니라 디멀티플렉서에 의해서도 확장성이 제한됨.


    적용사례
    Node.JS, Ruby EventMachine, Scala Akka’s IO 모듈



    참고
    http://en.wikipedia.org/wiki/Reactor_pattern

    반응형

    '디자인패턴' 카테고리의 다른 글

    행위패턴 : Visitor 패턴  (0) 2013.03.27
    행위패턴 : Template Method 패턴  (0) 2013.03.25
    행위패턴 : Strategy 패턴  (0) 2013.03.18
    행위패턴 : State 패턴  (0) 2013.03.11
    행위패턴 : Observer 패턴  (0) 2013.03.04

    댓글

Designed by Tistory.