더북(TheBook)

브로커리스 메시징

브로커리스 아키텍처의 서비스는 메시지를 서로 직접 교환합니다. ZeroMQ35는 잘 알려진 브로커리스 메시징 기술입니다. 그 자체가 명세이자, 여러 언어를 지원하는 라이브러리 세트입니다. TCP, 유닉스형 도메인 소켓(domain socket), 멀티캐스트(multicast) 등 다양한 전송 기술을 지원합니다.

브로커리스 아키텍처는 다음과 같은 장점이 있습니다.

송신자가 보낸 메시지가 브로커를 거쳐 수신자로 이동하는 것이 아니라, 송신자에서 수신자로 직접 전달되므로 네트워크 트래픽이 가볍고 지연 시간이 짧습니다.

메시지 브로커가 성능 병목점이나 SPOF(Single Point Of Failure, 단일 장애점)36가 될 일이 없습니다.

메시지 브로커를 설정/관리할 필요가 없으므로 운영 복잡도가 낮습니다.

 

다음과 같은 중요한 단점도 있습니다.

서비스가 서로의 위치를 알고 있어야 하므로 서비스 디스커버리 메커니즘(3.2.4절) 중 하나를 사용해야 합니다.

메시지 교환 시 송신자/수신자 모두 실행 중이어야 하므로 가용성이 떨어집니다.

전달 보장(guaranteed delivery) 같은 메커니즘을 구현하기가 더 어렵습니다.

 

가용성 저하 및 서비스 디스커버리가 필요한 것은 사실 동기 요청/응답을 사용하는 방식도 별반 다르지 않습니다.

이런 한계 때문에 엔터프라이즈 애플리케이션은 대부분 메시지 브로커 기반의 아키텍처를 사용합니다.

 

 


 

36 역주 : 시스템 구성 요소 중에서 동작하지 않으면 전체 시스템이 중단되는 요소를 말합니다. 예를 들어 이더넷 케이블과 전원, 이더넷 허브(HUB), 접속 단말들의 NIC(Network Interface Card) 등으로 이루어진 간단한 이더넷(Ethernet) 네트워크 시스템에서 SPOF는 네트워크 허브(HUB) 장치의 전원입니다. 단일 고장점, 단일 실패점이라고도 합니다. (출처: 위키백과)

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.