컴퓨터 사이에서 메시지를 주고받는 일이 많아지면서 효과적인 메시지 전달을 위해 점대점이나 발행/구독 모델 같은 메시지 전달 모델들과 메시지 큐, 메시지 브로커와 같은 다양한 메시지 전달 패러다임들이 제안되었다. 최근에는 점대점 모델과 발행/구독 모델의 장점을 섞은 메시지 브로커가 많이 사용되고 있다. 점차 빅데이터를 활용하려는 시도가 많아지면서 초기의 중앙 집중식 메시지 브로커로 많은 양의 데이터를 처리하기에는 확장성 등에 한계가 있었고, 이를 해결하고자 분산 메시지 브로커가 제안되었다.
많은 분산 메시지 브로커는 액티브-스탠바이 구조의 레플리카를 가지며 이를 통해 장애 허용과 확장성, 신뢰성 등을 제공한다. 그러나 액티브-스탠바이 구조에서 요청 부하가 생겼을 때 브로커 노드의 수를 늘리는 방법으로만 부하 분산이 가능하며 추가된 노드가 동기화를 맞추는 데에 시간이 걸리기 때문에 가용성이 감소할 수 있다.
본 논문에서는 이러한 문제를 해결하기 위해 분산 메시지 브로커의 레플리카를 액티브-액티브 구조로 구성하여 브로커의 가용성을 향상하는 기법을 제안한다. 스탠바이 레플리카들이 액티브 레플리카의 요청을 나누어 처리함으로써 브로커 노드 수를 늘리지 않으면서 브로커의 요청 부하를 분산시켰고, 분산 코디네이터를 메시지 동기화 과정에 활용하여 추가적인 오버헤드를 감소하였다. 레플리카에서 메시지 동기화를 할 때 생기는 오버헤드를 수식으로 제시하였으며, 단위 실험 진행과 그에 따른 처리 시간 경과 비교를 통해 액티브-액티브 구조의 레플리카를 활용할 때 메시지의 수, 메시지의 크기, 사용자의 수 등 여러 조건에서 가용성의 향상이 있었음을 확인하였다.
Alternative Abstract
As more and more messages are exchanged among computers, various messaging paradigms and models such as message queues, message brokers and point-to-point, publish/ subscribe models have been proposed for effective message delivery. Recently, message brokers that combine the advantages of point-to-point model and publish/subscribe model have been widely used. As more and more attempts to utilize big data have been made, there have been limited scalability in handling a large amount of data onto an early centralized message broker. To solve this problem, a distributed message broker has been proposed.
Many distributed message brokers have active-standby replicas, which provides fault-tolerance, scalability, and reliability. However, load balancing is possible only by increasing the number of broker nodes when a request load occurs in an active-standby structure, and availability may decrease because the added node take time to synchronize.
In this paper, we propose a method to improve broker availability by constructing an active-active structure of replicas of distributed message brokers to solve these problems. The active replicas distribute the requests to the standby replicas for distributing the request load of the broker without increasing the number of broker nodes. And we utilize the distributed coordinator in the message synchronization process to reduce the additional overhead. We presented the overhead of message synchronization in the replica as a formula. When using an active-active structure replica, it was confirmed that the availability was improved on various conditions such as number of messages, message size, number of users by comparing the progress of the unit experiment and the processing time according to the unit experiment.