Message Broker Load Balancing via Directory Service
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In message-oriented middleware systems, software applications can enter a fault state due to overwhelming message volumes or resource limitations, leading to undesirable delays and resource consumption as message brokers repeatedly attempt to deliver messages, causing frustration for end users.
Innovation Solution
Implementing a load balancing mechanism within the message broker subsystem that distributes messages across multiple functionally equivalent software application instances registered with a global directory service, automatically selecting instances based on a heuristic to balance the load and prevent message bottlenecks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a message broker repeatedly attempts to deliver messages to a software application in a fault state, then the message delivery reliability is improved, but the system experiences undesirable delays and consumes valuable network resources
Solution Approach 1:
The system performs preliminary health status checking of recipient software applications before attempting message delivery. The message broker proactively determines whether a recipient application is in a fault state by checking its health status, and only attempts delivery to applications that are currently healthy, avoiding repeated futile delivery attempts to faulty applications
Solution Approach 2:
The system implements a feedback mechanism where the message broker monitors the health status of recipient applications and uses this information to dynamically adjust its delivery behavior. The broker continuously checks whether recipient applications are in a fault state and modifies its message delivery strategy based on this feedback, stopping repeated attempts when applications are detected to be in a fault state
2Reliability
If a message broker repeatedly attempts to deliver messages to a software application in a fault state, then the message delivery reliability is improved, but network resources are consumed
Solution Approach 1:
The system performs preliminary health status checking of recipient software applications before attempting message delivery. The message broker proactively determines whether a recipient application is in a fault state by checking its health status, and only attempts delivery to applications that are currently healthy, avoiding repeated futile delivery attempts to faulty applications
Solution Approach 2:
The system implements a feedback mechanism where the message broker monitors the health status of recipient applications and uses this information to dynamically adjust its delivery behavior. The broker continuously checks whether recipient applications are in a fault state and modifies its message delivery strategy based on this feedback, stopping repeated attempts when applications are detected to be in a fault state
3Device complexity
If messages are concentrated on a single software application instance, then the system complexity is reduced, but the application may be overwhelmed and enter a fault state
Solution Approach 1:
The system segments the message delivery target into multiple functionally equivalent software application instances. Instead of delivering all messages to a single application, the message broker distributes messages across multiple instances that perform the same function, preventing any single application from being overwhelmed by message volume
Solution Approach 2:
The system implements universality by creating multiple functionally equivalent software application instances that can all receive and process the same type of messages. These instances are registered with a global directory service, allowing the message broker to select from multiple equivalent targets, thereby distributing load and improving system reliability
4Productivity
If the message broker implements load balancing across multiple instances, then the productivity is improved, but the device complexity increases
Solution Approach 1:
The system introduces a global directory service as an intermediary between the message broker and multiple software application instances. The directory service maintains information about available instances and their functional equivalence, allowing the message broker to perform load balancing by querying the directory service for suitable targets without needing complex built-in load balancing logic
Solution Approach 2:
The system implements a feedback mechanism where the message broker monitors the health status of recipient applications and uses this information to dynamically adjust its delivery behavior. The broker continuously checks whether recipient applications are in a fault state and modifies its message delivery strategy based on this feedback, stopping repeated attempts when applications are detected to be in a fault state
Data Source
AI summary
An exemplary method includes a message broker subsystem receiving a message intended for delivery to a recipient software application instance, determining that the recipient software application instance is included in a plurality of functionally equivalent software application instances that are registered with a global directory service subsystem that is communicatively coupled to the message broker subsystem, automatically selecting a software application instance from the plurality of software application instances for receipt of the message in accordance with a load balancing heuristic, and attempting to deliver the message to the selected software application instance. Corresponding methods and systems are also described.


