Evaluating Connectivity for RabbitMQ stream clients in front of Load Balancers

Detta är en Master-uppsats från Umeå universitet/Institutionen för datavetenskap

Författare: Hanna Littorin; [2024]

Nyckelord: ;

Sammanfattning: Message brokers play a crucial role in decoupling senders and receivers within distributed systems. In some scenarios, it is necessary to distribute a message broker across multiple nodes to form a cluster. To ensure even and fair distribution of client requests across nodes, load balancers are commonly employed in front of the cluster. While such architectural frameworks suits the needs of many applications, there are some deployments where clients seek specific nodes in a cluster. One such example are Stream-clients in RabbitMQ. They search for a specific node in the RabbitMQ cluster in order to get a direct connection to that node before utilizing the resources on the server.This poses a challenge when a load balancer is present, as the client attempts to bypass it and directly connect to a node.This could be a security concern or impossible when the load balancer serves as the only access point to the cluster. Some client libraries contains a workaround, where the client repeatedly reconnects to the load balancer until it establishes a connection with the appropriate node. This thesis explores a solution that decouples this workaround into a separate component. The objective is to assess the feasibility of consolidating this functionality into a single component rather than implementing the workaround in each client library. The outcome is a proxy which is positioned between the client and the load balancer. The proxy reconnects to the cluster, identifies the suitable node transparently to clients, and forwards messages until the connection is terminated. The evaluation of the proxy involves measuring throughput and latency in terms of publishing, receiving confirms, and subscribing. Comparative analysis against a client using the workaround revealed that the proxy introduces minimal degradation in publishing and publish confirm rates for message sizes ranging from 1-10KB. The impact on publish confirm latency is also negligible. However, subscribing rates were significantly better without the proxy, and integrating the proxy led to a considerable degradation in publish consume latency. Finally, since the proxy  was able to perform suitably for publishers, while being implemented as a proof of concept, it was concluded that with some optimization a proxy-basedapproach could benefit systems with a similar problem.

  HÄR KAN DU HÄMTA UPPSATSEN I FULLTEXT. (följ länken till nästa sida)