System and method for server load balancing and server affinity
First Claim
1. A system for server load balancing that includes server affinity, comprising:
- a plurality of machines executing a plurality of server instances;
a cluster that includes the plurality of server instances providing services, and wherein each of the services provides a plurality of method calls;
a load balancing and affinity processor that assigns servers from said cluster to service client requests in the form of service requests from clients; and
a client-side stub which attempts to choose a server instance to which it is already connected, and continues to use the same server instance and the same connection for method calls of that service,wherein the system uses a load balancing algorithm that includes server affinity to govern connections between external Java clients and server instances andwherein the load balancing algorithm uses any of round-robin, weight-based, or random load balancing for connections between the server instances.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method for server load balancing that includes server affinity. The system can be incorporated into application servers to support load balancing algorithms for RMI objects that provide server affinity. Server affinity uses smart load balancing for external client connections in such a way that it uses preexisting connection and reduces overhead: the client considers its existing connections to the application server instances when choosing the server instance on which to access a service. If a service is configured for server affinity, the client-side stub attempts to choose a server instance to which it is already connected, and continues to use the same server instance for method calls. All stubs on that client will attempt to use that server instance. If the server instance becomes unavailable, the stubs fail over, if possible, to a server instance to which the client is already connected.
-
Citations
18 Claims
-
1. A system for server load balancing that includes server affinity, comprising:
-
a plurality of machines executing a plurality of server instances; a cluster that includes the plurality of server instances providing services, and wherein each of the services provides a plurality of method calls; a load balancing and affinity processor that assigns servers from said cluster to service client requests in the form of service requests from clients; and a client-side stub which attempts to choose a server instance to which it is already connected, and continues to use the same server instance and the same connection for method calls of that service, wherein the system uses a load balancing algorithm that includes server affinity to govern connections between external Java clients and server instances and wherein the load balancing algorithm uses any of round-robin, weight-based, or random load balancing for connections between the server instances. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method for server load balancing that includes server affinity, comprising the steps of:
-
providing a plurality of machines executing a plurality of server instances; providing the plurality of server instances as a cluster providing services, and wherein each of the services provides a plurality of method calls; assigning servers from said cluster to service client requests in the form of method calls from clients; wherein said step of assigning includes using a client-side stub which attempts to choose a server instance to which it is already connected, and continues to use the same server instance and same connection for method calls for that service, wherein the method uses a load balancing algorithm that includes server affinity to govern connections between external Java clients and server instances, and wherein the load balancing algorithm uses any of round-robin, weight-based, or random load balancing for connections between the server instances. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
Specification