Apparatuses and methods for smart load balancing in a distributed computing system
US-2020301748-A1 · Sep 24, 2020 · US
US11418584B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11418584-B2 |
| Application number | US-202016785672-A |
| Country | US |
| Kind code | B2 |
| Filing date | Feb 10, 2020 |
| Priority date | Nov 14, 2019 |
| Publication date | Aug 16, 2022 |
| Grant date | Aug 16, 2022 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
This disclosure describes various ways in which a client agent can be incorporated into multiple virtual machines of a server cluster to keep track of the location of each instance of services running on the server cluster and facilitate rapid connection of different services on the server cluster as needed. When a first service requests connection to a second service, a client agent co-located with the first service is able to forward the request to a virtual network interface card (VNIC) associated with the second service. The VNIC is configured to forward the request to an available instance of the second service. The location of the services are determined and stored on one or more service registries right after the service instances are instantiated, removing the need for a search when new requests are received.
Opening claim text (preview).
What is claimed is: 1. A computer implemented method for managing services within a server cluster, comprising: receiving a request from a first service running on a first virtual machine (VM) to connect to an instance of a plurality of instances of a second service running on a second VM of the server cluster; locating a virtual network interface card (VNIC) associated with the second service using an entry in a local service registry stored within the server cluster; sending the request to the VNIC; and forwarding the request from the VNIC to the instance of the second service to establish a connection between the instance of the second service and the first service, wherein each VM of the server cluster includes a respective local service registry and wherein the local service registries are synchronized with each other. 2. The computer implemented method as recited in claim 1 , wherein the VNIC is running on a third VM located within the server cluster. 3. The computer implemented method as recited in claim 1 , wherein the first service is running within the first VM on a first host and the instance of the second service is running on a second host different from the first host. 4. The computer implemented method as recited in claim 1 , wherein forwarding the request from the VNIC to the instance of the second service comprises: sending the request to a load balancing port; and sending the request from the load balancing port to the instance of the second service. 5. The computer implemented method as recited in claim 4 , wherein the load balancing port selects the instance from two or more instances of the plurality of instances of the second service in accordance with a current load being handled by the two or more instances of the second service. 6. The computer implemented method as recited in claim 1 , wherein the second service is a database service or a user interface backend service. 7. The computer implemented method as recited in claim 1 , wherein the local service registry comprises an entry for each active service running on the server cluster, each entry comprising a host name and VNIC location for its respective active service. 8. A non-transitory computer-readable storage medium storing instructions configured to be executed by one or more processors of a computing device cause the computing device to carry out steps that include: receiving a request from a first service running on a first virtual machine (VM) to connect to an instance of a plurality of instances of a second service running on one or more VMs running on the computing device; sending the request to a virtual network interface card (VNIC) associated with the second service using an entry in a local service registry stored within the computing device; and sending the request to the VNIC, the VNIC being configured to forward the request to the instance of the second service to establish a connection between the first service and the instance of the second service wherein each VM of the computing device includes a respective local service registry and wherein the local service registries are synchronized with each other. 9. The non-transitory computer-readable storage medium as recited in claim 8 , wherein the VNIC includes an IP Tables forwarding rule that includes a host name and a port number of the instance of the second service. 10. The non-transitory computer-readable storage medium as recited in claim 8 , wherein the VNIC is configured to forward the request to the instance of the second service by sending the request to a load balancing port that is configured to send the request to the instance of the second service. 11. The non-transitory computer-readable storage medium as recited in claim 8 , wherein locating the VNIC associated with the second service comprises retrieving an internet protocol (IP) address of the VNIC from the service registry. 12. The non-transitory computer-readable storage medium as recited in claim 11 , wherein the entry of the local service registry includes at least a service name and the IP address for the VNIC associated with the instance of the second service. 13. The non-transitory computer-readable storage medium as recited in claim 8 , wherein the VNIC is separate and distinct from the instance of the second service. 14. A computer system, comprising: one or more processors; and memory storing one or more programs configured to be executed by the one or more processors, the one or more programs including instructions for: receiving a request from a first service running on a first virtual machine (VM) to connect to an instance of a plurality of instances of a second service running on a second virtual machine; locating a virtual network interface card (VNIC) associated with the second service using on an entry of a local service registry stored within the computer system; sending the request to the VNIC; and forwarding the request from the VNIC to the instance of the second service to connect the instance of the second service to the first service, wherein each VM of the computer system includes a respective local service registry and wherein the local service registries are synchronized with each other. 15. The computer system as recited in claim 14 , wherein the computer system is a server cluster. 16. The computer system as recited in claim 14 , wherein the VNIC includes an IP Tables forwarding rule that includes both a host and port information for the second service. 17. The computer system as recited in claim 14 , further comprising a first host and a second host, the first service operating on the first host and the second service operating on the second host. 18. The computer system as recited in claim 14 , wherein locating the VNIC associated with the second service comprises retrieving an internet protocol (IP) address of the VNIC from the service registry.
Virtual switches · CPC title
using data related to the state of servers by a load balancer · CPC title
Directories for service discovery · CPC title
Hypervisor-specific management and integration aspects · CPC title
Network integration; Enabling network access in virtual machine instances · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.