Tag Archives: 마스터-슬레이브

Broker pattern은 Apache ActiveMQ, Apache Kafka, RabbitMQ 등 메시지 미들웨어 같은 아키텍쳐에 주로 이용

브로커아키텍쳐 패턴(Broker Architectural pattern)은 클라이언트-서버(Client-Server) / 마스터-슬레이브(Master-Slave) 처럼 역할이 분리된 컴포넌트(decoupled components)를 구조화하는데 주로 응용되는 패턴입니다.

여기서 브로커 컴포넌트는 컴포넌트간 통신(communication)을 조율(coordination) 하는 역할을 담당합니다.

클라이언트가 어떤 요청사항을 전달하면, 브로커가 중간에 받아서 이를 처리할 기능이 있는 서버로 명령을 요청하게 되고, 서버가 이에 따른 결과를 처리하는 방식입니다.

Broker pattern은 Apache ActiveMQ, Apache Kafka, RabbitMQ 등 메시지 미들웨어 같은 아키텍쳐에 주로 이용

Apache ActiveMQ, Apache Kafka, RabbitMQ and JBoss Messaging과 같은 소프트웨어가 브로커(Broker) 아키텍쳐 패턴(Architectural pattern)에 해당합니다.

브로커아키텍쳐 패턴(Broker Architectural pattern)은 객체의 동적인 변경, 추가, 삭제 및 재할당이 가능하며 개발자에게 배포를 투명하게 할 수 있다는 장점이 있습니다.

또한 배포를 투명하게 하려면 서비스 표현에 대한 문서화 등의 표준화가 필요합니다.

Master-slave pattern은 장애 대응을 위한 Database 복제 등 병렬처리 및 Disaster Recovery 대응 로직에 주로 이용

마스터-슬레이브 아키텍쳐 패턴(Master-Slave Architectural pattern)은 마스터(master)와 슬레이브(slave)로 구성되어져 있는데, 마스터는 일을 분배하는 역할을 가지고 있으며, 슬레이브는 전달된 기능을 수행합니다.

즉, 마스터(주인)이 업무를 지시하면, 슬레이브(하녀)는 그 일을 완료하여 결과물을 전달 하는 것입니다.

Master-slave pattern은 장애 대응을 위한 Database 복제 등 병렬처리 및 Disaster Recovery 대응 로직에 주로 이용

마스터-슬레이브 아키텍쳐 패턴(Master-Slave Architectural pattern)의 예로는 데이터베이스 복제(replication)를 들 수 있습니다. 즉, 마스터 DB는 원본데이터를 가지고 있고, 슬레이브는 그 복제본을 동기화하여 가지고 있습니다.

참고로 replication이라 함은 사전적으로 “복제”라는 의미를 가지고 있습니다.

다른 예로는 USB 허브를 예로 들수 있는데, USB 허브를 통해 마스터 포트에서 사용하던 기능을 그대로 사용할 수 있습니다.

마스터-슬레이브 아키텍쳐 패턴(Master-Slave Architectural pattern)의 장점은 정확성에 있습니다. 즉, 서비스의 실행은 각기 다른 구현체를 가진 슬레이브들에게 전파되어 설계된 로직대로 동작합니다.

반면에, 슬레이브가 독립적이므로 공유되는 상태가 없으므로 실시간 시스템에서는 마스터-슬레이브간 레이턴시 문제가 발생할 수 있습니다. 이 패턴은 분리 가능한 문제에만 적용할 수 있다.