Health checking in a distributed load balancer
AssigneeAmazon Technologies, Inc.
InventorsJames Christopher Sorenson, III, Douglas Stewart Laurence, Neha Shetty
Life of this patent
Estimating the term…
Abstract
A health check method for a distributed load balancer in which a router receives packets from at least one client and routes packet flows to multiple load balancer (LB) nodes, which in turn distribute the packet flows among multiple server nodes. Each LB node may be responsible for health checking one or more other LB nodes. In addition, each LB node may health check one or more of the server nodes. Heartbeat information for the nodes may be disseminated among the LB nodes according to a gossip protocol. The LB nodes may send LB node membership information to the server nodes. Failure of a node may be detected by the LB nodes according to the heartbeat information, and appropriate actions taken.
Claims20
A distributed load balancer system, comprising:
- a plurality of load balancer nodes;
- a plurality of server nodes;
- and
- a router configured to distribute packet flows from one or more clients to the plurality of load balancer nodes according to a hashed multipath routing technique;
- wherein the plurality of load balancer nodes is configured to distribute the packet flows received from the router among the plurality of server nodes;
- wherein each load balancer node is further configured to:
- perform a health check of each of one or more other load balancer nodes of the plurality of balancer nodes to obtain health information for each of the one or more other load balancer nodes of the plurality of load balancer nodes;
- update locally stored health information for the plurality of load balancer nodes according to the obtained health information for each of the one or more other load balancer nodes of the plurality of load balancer nodes;
- and
- send the updated health information for the plurality of load balancer nodes to at least one other load balancer node but less than an entirety of the plurality of load balancer nodes;
- and
- wherein at least one of the plurality of load balancer nodes is further configured to send the updated health information for the plurality of load balancer nodes to at least one of the plurality of server nodes.
A method, comprising:
- distributing, by a router, packet flows from one or more clients to a plurality of load balancer nodes according to a hashed multipath routing technique;
- distributing, by the plurality of load balancer nodes, packet flows received from the router among a plurality of server nodes;
- performing, by each load balancer node of the plurality of load balancer nodes, a health check of each of one or more other load balancer nodes of the plurality of load balancer nodes to obtain health information for each of the one or more other load balancer nodes of the plurality of load balancer nodes;
- propagating the health information obtained by the health checks among the plurality of load balancer nodes according to a gossip protocol wherein each load balancer node propagates the health information obtained to less than an entirety of the plurality of load balancer nodes;
- updating, by each load balancer node of the plurality of load balancer nodes, locally stored health information for the plurality of load balancer nodes according to the propagated health information;
- and
- sending, by at least one load balancer node of the plurality of load balancer nodes, the updated health information for the plurality of load balancer nodes to at least one of the plurality of server nodes.
A non-transitory computer-accessible storage medium storing program instructions computer-executable to implement:
- distributing, by a plurality of load balancer nodes, packet flows among a plurality of server nodes;
- performing, by each of the plurality of load balancer nodes, a health check of each of one or more other load balancer nodes of the plurality of load balancer nodes to obtain health information for each of the one or more other load balancer nodes of the plurality of load balancer nodes and a health check of each of one or more of the plurality of server nodes to obtain health information for each of the one or more of the plurality of server nodes;
- propagating the health information obtained by the health checks among the plurality of load balancer nodes according to a gossip protocol wherein each load balancer node propagates the health information obtained to less than an entirety of the plurality of load balancer nodes;
- updating, by each load balancer node, locally stored health information for the plurality of load balancer nodes and the plurality of server nodes according to the propagated health information;
- and
- sending, by at least one of the plurality of load balancer nodes, the updated health information for the plurality of load balancer nodes to at least one of the plurality of server nodes.
Dependencies are inferred from the claim text.