IP Library › Granted Patent US 10,574,741
Granted Patent B2
US 10,574,741 · App. 15/131,317 · Granted Feb 25, 2020

Multi-level load balancing

Inventor: Lukasz Jastrzebski (Cupertino, CA)
Assignee: Nokia Technologies Oy
H04L67/1008H04L41/0816H04L47/125H04L41/08H04L45/04H04L45/24
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,574,741
App. No.
15/131,317
Granted
Feb 25, 2020
Kind
B2
Abstract

Various methods are provided for facilitating the assignment of a DNS name to load balancers in a dynamically partitioned cluster environment. One example method may comprise receiving cluster configuration information from a cluster configuration observer, the cluster configuration information comprising information indicative of each of a plurality of instances of running application and one or more servers and associated ports to which at least one of the plurality of instances is bound, receiving a request from a first level load balancer requiring a call to the first application, determining, based on the cluster configuration information, to which port the instance of the first application is bound, and transmitting the request to the port to which the instance of the first application is bound.

Claims (76)

1. A system enabling the assignment of a DNS name to load balancers in a dynamically partitioned cluster environment, the system comprising:

a first level load balancer;

a second level load balancer;

a cluster configuration observer; and

a plurality of servers, each configured to run one or more instances of applications, an instance of a first application being bound to a first port,

the cluster configuration observer configured to:

receive cluster configuration information, the cluster configuration information comprising information indicative of one or more instances of a plurality of running applications, including an instance of a first application and associated ports to which the one or more of instances is bound including a specific port to which the instance of the first application is bound; and

provide the cluster configuration information to a second level load balancer;

the second level load balancer configured to:

receive configuration information of the second level load balancer that comprises the cluster configuration information;

receive a request from the first level load balancer requiring a call to the first application, wherein the request is an HTTP request received at a first level load balancer and configured to be redirected to one or more of a plurality of second level load balancers;

determine, based on the cluster configuration information, to which port on the one or more of the plurality of the second level load balancers, the instance of the first application is bound, wherein the instance of the first application is bound to a same, specific port on the one or more of the plurality of second level load balancers;

transmit the request to the port to which the instance of the first application is bound at the second level load balancers; and

receive a response from the instance of the first application;

the first level load balancer configured to:

receive the request from a client device;

transmit, to the second level load balancer, the request; and

receive the response from the second level load balancer; and

transmit the response to the client device.

2. An apparatus comprising at least one processor and at least one memory including computer program code, the at least one memory and the computer program code configured to, with the processor, cause the apparatus to:

receive cluster configuration information from a cluster configuration observer, the cluster configuration information comprising information indicative of a plurality of instances of a plurality of running applications, including an instance of a first application and one or more servers and associated ports to which at least one of the plurality of instances is bound including a specific port to which the instance of the first application is bound;

receive a request from a first level load balancer requiring a call to the first application, wherein the request is an HTTP request received at a first level load balancer and configured to be redirected to one or more of a plurality of second level load balancers;

determine, based on the cluster configuration information, to which port, on one or more of the plurality of the second level load balancers, the instance of the first application is bound, wherein the instance of the first application is bound to a same, specific port on the one or more of the plurality of second level load balancers;

transmit the request to the port to which the instance of the first application is bound at the second level load balancers; and

receive a response from the instance of the first application.

3. The apparatus according to claim 2 , wherein the apparatus further comprises computer program code configured to, with the processor, cause the apparatus to:

determine, based on the cluster configuration information, whether a healthy instance of the first application is running.

4. The apparatus according to claim 2 , wherein the apparatus further comprises computer program code configured to, with the processor, cause the apparatus to:

determine whether the cluster configuration information is stale, and in an instance in which a determination is made that the cluster configuration is stale, updating the cluster configuration information.

5. The apparatus according to claim 2 , wherein the apparatus further comprises computer program code configured to, with the processor, cause the apparatus to:

maintain storage of the cluster configuration information; and

periodically access the cluster configuration observer to update stored cluster configuration information.

6. The apparatus according to claim 2 , wherein the apparatus further comprises computer program code configured to, with the processor, cause the apparatus to:

periodically receive, from the cluster configuration observer, updated cluster configuration information.

7. The apparatus according to claim 2 , wherein the computer program code configured to, with the processor, cause the apparatus to determine, based on the cluster configuration information, to which port the instance of the first application is bound, further comprises computer program code configured to, with the processor, cause the apparatus to:

access a routing table, the routing table configured to store the information indicative of the one or more servers and the associated port to which the instance of the first application is bound.

8. The apparatus according to claim 2 , wherein the apparatus further comprises computer program code configured to, with the processor, cause the apparatus to:

request updated cluster configuration information upon reception of the request from the first level load balancer.

9. A computer program product comprising at least one non-transitory computer-readable storage medium having computer-executable program code instructions stored therein, the computer-executable program code instructions comprising program code instructions for:

receiving cluster configuration information from a cluster configuration observer, the cluster configuration information comprising information indicative of a plurality of instances of a plurality of running applications, including an instance of a first application and one or more servers and associated ports to which at least one of the plurality of instances is bound including a specific port to which the instance of the first application is bound;

receiving a request from a first level load balancer requiring a call to the first application, wherein the request is an HTTP request received at a first level load balancer and configured to be redirected to one or more of a plurality of second level load balancers;

determining, based on the cluster configuration information, to which port, on the one or more of the plurality of the second level load balancers, the instance of the first application is bound, wherein the instance of the first application is bound to a same, specific port on the one or more of the plurality of second level load balancers;

transmitting the request to the port to which the instance of the first application is bound at the second level load balancers; and

receiving a response from the instance of the first application.

10. The computer program product according to claim 9 , wherein the computer-executable program code instructions further comprise program code instructions for:

determining, based on the cluster configuration information, whether a healthy instance of the first application is running.

11. The computer program product according to claim 9 , wherein the computer-executable program code instructions further comprise program code instructions for:

determining whether the cluster configuration information is stale, and in an instance in which a determination is made that the cluster configuration is stale, updating the cluster configuration information.

12. The computer program product according to claim 9 , wherein the computer-executable program code instructions further comprise program code instructions for:

maintaining storage of the cluster configuration information; and

periodically accessing the cluster configuration observer to update stored cluster configuration information.

13. The computer program product according to claim 9 , wherein the computer-executable program code instructions further comprise program code instructions for:

periodically receiving, from the cluster configuration observer, updated cluster configuration information.

14. The computer program product according to claim 9 , wherein the computer-executable program code instructions comprising program code instructions for causing the apparatus to determine, based on the cluster configuration information, to which port the instance of the first application is bound, further comprise program code instructions for:

accessing a routing table, the routing table configured to store the information indicative of the one or more servers and the associated port to which the instance of the first application is bound.

15. The computer program product according to claim 9 , wherein the computer-executable program code instructions further comprise program code instructions for:

requesting updated cluster configuration information upon reception of the request from the first level load balancer.

16. A method comprising:

receiving cluster configuration information from a cluster configuration observer, the cluster configuration information comprising information indicative of a plurality of instances of a plurality of running applications, including an instance of a first application and one or more servers and associated ports to which at least one of the plurality of instances is bound including a specific port to which the instance of the first application is bound;

receiving a request from a first level load balancer requiring a call to the first application, wherein the request is an HTTP request received at a first level load balancer and configured to be redirected to one or more of a plurality of second level load balancers;

determining, based on the cluster configuration information, to which port, on the one or more of the plurality of the second level load balancers, the instance of the first application is bound, wherein the instance of the first application is bound to a same, specific port on the one or more of the plurality of second level load balancers;

transmitting the request to the port to which the instance of the first application is bound at the second level load balancers; and

receiving a response from the instance of the first application.

17. The method according to claim 16 , further comprising:

determining, based on the cluster configuration information, whether a healthy instance of the first application is running.

18. The method according to claim 16 , further comprising:

determining whether the cluster configuration information is stale, and in an instance in which a determination is made that the cluster configuration is stale, updating the cluster configuration information.

19. The method according to claim 16 , further comprising:

maintaining storage of the cluster configuration information; and

periodically accessing the cluster configuration observer to update stored cluster configuration information.

20. The method according to claim 16 , further comprising:

periodically receiving, from the cluster configuration observer, updated cluster configuration information.

21. The method according to claim 16 , wherein step of causing the apparatus to determine, based on the cluster configuration information, to which port the instance of the first application is bound, further comprises:

accessing a routing table, the routing table configured to store the information indicative of the one or more servers and the associated port to which the instance of the first application is bound.

22. The method according to claim 16 , further comprising:

requesting updated cluster configuration information upon reception of the request from the first level load balancer.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 22, 2016
From: JASTRZEBSKI, LUKASZ
To: NOKIA TECHNOLOGIES OY
Reel/Frame 038988/0308 →
Continuity (1)
Related Publication 20170302730A1 · Oct 19, 2017