US20200259892A1 - Implementing multiple load balancer drivers for a single load balancer - Google Patents
Implementing multiple load balancer drivers for a single load balancer Download PDFInfo
- Publication number
- US20200259892A1 US20200259892A1 US16/272,682 US201916272682A US2020259892A1 US 20200259892 A1 US20200259892 A1 US 20200259892A1 US 201916272682 A US201916272682 A US 201916272682A US 2020259892 A1 US2020259892 A1 US 2020259892A1
- Authority
- US
- United States
- Prior art keywords
- load balancer
- driver
- load
- requests
- request selection
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1006—Server selection for load balancing with static server selection, e.g. the same server being selected for a specific client
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1012—Server selection for load balancing based on compliance of requirements or conditions with available server resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1025—Dynamic adaptation of the criteria on which the server selection is based
-
- H04L67/2814—
-
- H04L67/327—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data redirection of data network streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/303—Terminal profiles
Definitions
- Load balancers typically load balance traffic based on a single criterion, such as load balancing based on a particular protocol, or load balancing based on a particular open systems interconnection (OSI) layer. Not all load balancers load balance equally for the same criterion, and some may be better at load balancing based on one criterion than another. For example, a first load balancer may excel at layer 7 load balancing, and a second load balancer may excel at layer 4 load balancing.
- OSI open systems interconnection
- the examples disclosed herein implement a load balancer that can implement multiple concurrent load balancer drivers, each of which can load balance selected traffic based on a different criterion. For example, traffic having one characteristic may be load balanced based on layer 7 content, and traffic having another characteristic may be load balanced based on layer 4 content.
- the examples in some implementations, provide load balancing in a cloud computing environment, and eliminate a need to implement multiple different load balancers in order to load balance different traffic via different load balancing mechanisms.
- a method in one example includes receiving a first request directed to a load balancer to load balance requests based on a first request selection instruction.
- the method further includes selecting a first particular load balancer driver from a plurality of load balancer drivers based on a load balancer table that correlates request selection instructions to corresponding load balancer drivers of the plurality of load balancer drivers.
- the method further includes causing subsequent requests that are encompassed by the first request selection instruction directed to the load balancer to be load balanced by the first particular load balancer driver.
- a system in another example, includes one or more computing devices, each computing device comprising a memory and a processor device coupled to the memory.
- the one or more computing devices are to receive a first request directed to a load balancer to load balance requests based on a first request selection instruction.
- the one or more computing devices are further to select a first particular load balancer driver from a plurality of load balancer drivers based on a load balancer table that correlates request selection instructions to corresponding load balancer drivers of the plurality of load balancer drivers.
- the one or more computing devices are further to cause subsequent requests that are encompassed by the first request selection instruction directed to the load balancer to be load balanced by the first particular load balancer driver.
- a computer program product is provided.
- the computer program product is stored on a non-transitory computer-readable storage medium and includes instructions configured to cause one or more processor devices to receive a first request directed to a load balancer to load balance requests based on a first request selection instruction.
- the instructions further cause the one or more processor devices to select a first particular load balancer driver from a plurality of load balancer drivers based on a load balancer table that correlates request selection instructions to corresponding load balancer drivers of the plurality of load balancer drivers.
- the instructions further cause the one or more processor devices to cause subsequent requests that are encompassed by the first request selection instruction directed to the load balancer to be load balanced by the first particular load balancer driver.
- FIG. 1 A is a block diagram of an environment in which examples disclosed herein may be implemented
- FIGS. 1 B- 1 D are block diagrams of the environment illustrated in FIG. 1A at subsequent points in time;
- FIG. 2 is a flowchart of a method for implementing a load balancer driver in conjunction with a load balancer according to one example
- FIG. 3 is a simplified block diagram of FIG. 1B according to one example.
- FIG. 4 is a block diagram of a computing device suitable for implementing any of the functions disclosed herein.
- Load balancers typically load balance traffic based on a single criterion, such as load balancing based on a particular protocol, or load balancing based on a particular open systems interconnection (OSI) layer. Not all load balancers load balance equally for the same criterion, and some may be better at load balancing based on one criterion than another. For example, a first load balancer may excel at layer 7 load balancing, and a second load balancer may excel at layer 4 load balancing.
- OSI open systems interconnection
- the examples disclosed herein implement a load balancer that can implement multiple concurrent load balancer drivers, each of which can load balance selected traffic based on a different criterion. For example, traffic having one characteristic may be load balanced based on layer 7 content, and traffic having another characteristic may be load balanced based on layer 4 content.
- the examples in some implementations, provide load balancing in a cloud computing environment, and eliminate a need to implement multiple different load balancers in order to load balance different traffic via different load balancing mechanisms.
- a first request can be directed to a load balancer to balance requests based on a first request selection instruction.
- a first load balancer driver can be selected to load balance requests that are encompassed by the first request selection instruction.
- a second request can be directed to the same load balancer to balance requests based on a second request selection instruction.
- a second load balancer driver can be selected to load balance requests that are encompassed by the second request selection instruction concurrently while the requests encompassed by the first request selection instruction directed to the load balancer are load balanced by the first load balancer driver.
- FIG. 1A is a block diagram of an environment 10 in which examples disclosed herein may be implemented.
- the environment 10 includes a cloud computing environment 12 .
- the cloud computing environment 12 includes a load balancer (LB) service 14 configured to facilitate load balancing services for external entities, such as an external entity 22 , that utilize the cloud computing environment 12 .
- the LB service 14 may, in some examples, execute on a computing device 16 which includes a processor device 18 and a memory 20 .
- the phrase “cloud computing environment” as used herein, refers to a computing environment, often provided by a service provider, which facilitates dynamic and scalable computing resources as needed.
- a cloud computing environment often utilizes multiple computing devices to implement tasks as needed. Examples of cloud computing environments include Amazon AWS and Microsoft Azure. It should be noted that, while for purposes of illustration the examples are disclosed in the context of a cloud computing environment, the examples disclosed herein are not limited to a cloud computing environment and have applicability to any environment in which load balancing is utilized.
- the external entity 22 such as, by way of non-limiting example, an online store, sells products to end users 50 via the cloud computing environment 12 .
- end user computers may request information, such as a web page of the external entity 22 , that is stored on one or more of a plurality of computing servers 24 - 1 - 1 24 -N (generally, computing servers 24 ) of a server group 25 .
- the external entity 22 may desire that such requests first be received by a load balancer that executes in the cloud computing environment 12 , and which implements some algorithm, such as a round robin algorithm, for spreading requests out among the various computing servers 24 .
- the LB service 14 includes a plurality of registered LB drivers 26 - 1 - 26 - 3 (generally, LB drivers 26 ). Instances of the LB drivers 26 can be initiated in the cloud computing environment 12 in conjunction with a load balancer, and are the applications that actually perform the load balancing of requests based on one or more criteria. As a new LB driver 26 becomes available, the LB driver 26 registers with the LB service 14 and provides selection information to the LB service 14 that identifies LB capabilities of the respective LB driver 26 .
- the Linux Virtual Server (LVS) LB driver 26 - 1 (“LVS LBD”) registers with the LB service 14 and, as part of the registration process, provides a LB registration record 28 - 1 that identifies the LB capabilities of the respective LVS LB driver 26 - 1 .
- the LB registration record 28 - 1 indicates that the LVS LB driver 26 - 1 can load balance traffic that utilizes the User Datagram Protocol (UDP protocol), can access any port that utilizes the UDP protocol, and utilizes open systems interconnection (OSI) layer four (L4) rules only.
- the LB drivers 26 may be implemented via a plug-in technology, such that, for example, the registration process may include the LB service 14 querying each LB driver 26 via a plug-in interface to determine the capabilities of the LB drivers 26 .
- the Open Virtual Network (OVN) LB driver 26 - 2 (“OVN LBD”) registers with the LB service 14 and, as part of the registration process, provides selection information in the form of a LB registration record 28 - 2 that identifies the LB capabilities of the respective OVN LB driver 26 - 2 .
- the LB registration record 28 - 2 indicates that the OVN LB driver 26 - 2 can load balance traffic that utilizes the TCP protocol, can access any port that utilizes the Transmission Control Protocol (TCP) protocol, and utilizes layer four (L4) rules only.
- TCP Transmission Control Protocol
- the HAProxy LB driver 26 - 3 (“HAPROXY LBD”) registers with the LB service 14 and, as part of the registration process, provides selection information in the form of a LB registration record 28 - 3 that identifies the LB capabilities of the respective HAProxy LB driver 26 - 3 .
- the LB registration record 28 - 3 indicates that the HAProxy LB driver 26 - 3 can load balance traffic that utilizes the TCP protocol, can access any port that utilizes the TCP protocol, and utilizes layer seven (L7) rules or layer four rules.
- the LB service 14 After receiving the LB registration record 28 - 1 , the LB service 14 generates a table entry 30 - 1 that correlates subsequent request selection instructions that may be received from an entity that desires load balancing services to the load balancing capability of the LVS LB driver 26 - 1 , and stores such table entry 30 - 1 in a LB table 32 . In this example, the LB service 14 correlates request selection instructions that instruct a LB to load balance requests that arrive on a UDP port with the LVS LB driver 26 - 1 .
- the LB service 14 After receiving the LB registration record 28 - 2 , the LB service 14 generates a table entry 30 - 2 that correlates subsequent request selection instructions that may be received from an entity that desires load balancing services to the load balancing capability of the OVN LB driver 26 - 2 , and stores such table entry 30 - 2 in the LB table 32 . In this example, the LB service 14 correlates request selection instructions that instruct a LB to load balance requests that arrive on port 80 with the OVN LB driver 26 - 2 .
- the LB service 14 After receiving the LB registration record 28 - 3 , the LB service 14 generates a table entry 30 - 3 that correlates subsequent request selection instructions that may be received from an entity that desires load balancing services to the load balancing capability of the HAProxy LB driver 26 - 3 , and stores such table entry 30 - 3 in the LB table 32 . In this example, the LB service 14 correlates request selection instructions that instruct a LB to load balance requests that arrive on port 443 with the HAProxy LB driver 26 - 3 .
- the LB service 14 Because the HAProxy LB driver 26 - 3 is also capable of implementing L7 load balancing, the LB service 14 generates a table entry 30 - 4 that correlates request selection instructions that instruct a LB to load balance requests based on L7 rules with the HAProxy LB driver 26 - 3 , and stores the table entry 30 - 4 in the LB table 32 .
- the LB service 14 may also generate a table entry 30 - 5 that will identify a default LB to be used as a default, such as when the LB service 14 receives no specific request selection instructions for a LB, or when the LB service 14 receives request selection instructions that are not understood by the LB service 14 .
- a computing device 34 associated with the external entity 22 sends a request 36 to the LB service 14 requesting that the LB service 14 establish a load balancer for the IP address 192.168.123.45.
- the LB service 14 initiates a LB 38 .
- the LB 38 may execute on the computing device 16 or on another computing device in the cloud computing environment 12 .
- the LB 38 initiates a LB driver selector 40 , which will be described in greater detail below.
- the LB 38 represents a destination for any requests addressed to IP address 192.168.123.45, which may, to end user computers, be associated with the online store of the external entity 22 .
- the LB driver selector 40 may access the LB table 32 and select the default LB driver, in this case, the HAProxy LB driver 26 - 3 , and cause any subsequently received requests directed to the LB 38 to be load balanced by an instance of the HAProxy LB driver 26 - 3 .
- the LB driver selector 40 may initiate a listener 42 - 1 and a HAProxy LBD 44 instance. The listener 42 - 1 is notified upon the arrival of any requests 46 from the end users 50 that are directed to the LB 38 , and upon notification sends the requests 46 to the HAProxy LBD 44 for load balancing.
- FIG. 1 B which depicts the environment 10 illustrated in FIG. 1 A at a subsequent point in time T 2
- the computing device 34 sends a request 50 to the LB driver selector 40 that includes a request selection instruction that identifies certain requests that may be subsequently received by the LB 38 and indicates that such certain requests should be load balanced among the computing servers 24 .
- the LB driver selector 40 receives the request 50 , either directly or via the LB service 14 , and selects a particular LB driver 26 from the plurality of LB drivers 26 based on the LB table 32 that correlates request selection instructions to corresponding LB drivers 26 .
- the LB driver selector 40 determines that the request selection instruction in the request 50 identifies those requests 46 that will be directed to port 80 of the LB 38 (i.e., to 192.168.123.45:80).
- the LB driver selector 40 accesses the LB table 32 and determines that the table entry 30 - 2 correlates request selection instructions that identify requests 46 sent to port 80 with the OVN LB driver 26 - 2 .
- the LB driver selector 40 may then initiate a listener 42 - 2 and an OVN LBD 52 instance.
- the listener 42 - 2 is now also notified upon the arrival of a request 46 to the LB 38 , and upon notification sends any requests 46 directed to port 80 to the OVN LBD 52 for load balancing. Any other requests 46 will be sent by the listener 42 - 1 to the HAProxy LB driver 44 for load balancing.
- FIG. 1C which depicts the environment 10 illustrated in FIG. 1B at a subsequent point in time T 3
- the computing device 34 sends a request 54 to the LB driver selector 40 that includes a request selection instruction that identifies certain requests that may be subsequently received by the LB 38 and indicates that such certain requests should be load balanced among the computing servers 24 .
- the LB driver selector 40 receives the request 54 , either directly or via the LB service 14 , and selects a particular LB driver 26 from the plurality of LB drivers 26 based on the LB table 32 that correlates request selection instructions to corresponding LB drivers 26 .
- the LB driver selector 40 determines that the request selection instruction in the request 54 identifies those requests 46 that will be directed to port 123 of the LB 38 (i.e., to 192.168.123.45:123), and the request selection instruction indicates that all such requests 46 should be load balanced based on the content of layer 7 of such requests 46 .
- the LB driver selector 40 accesses the LB table 32 and determines that the table entry 30 - 4 correlates request selection instructions that identify requests 46 that should be load balanced based on layer 7 with the LB driver 26 - 3 .
- the LB driver selector 40 may then initiate a listener 42 - 3 and a HAProxy LBD 56 instance.
- the listener 42 - 3 is now also notified upon the arrival of a request 46 to the LB 38 , and upon notification sends any requests 46 directed to port 123 to the HAProxy LBD 56 for load balancing.
- FIG. 1D which depicts the environment 10 illustrated in FIG. 1C at a subsequent point in time T 4
- the computing device 34 sends a request 58 to the LB driver selector 40 that includes a request selection instruction that identifies certain requests that may be subsequently received by the LB 38 and indicates that such certain requests should be load balanced among the computing servers 24 .
- the LB driver selector 40 receives the request 58 , either directly or via the LB service 14 , and selects a particular LB driver 26 from the plurality of LB drivers 26 based on the LB table 32 that correlates request selection instructions to corresponding LB drivers 26 .
- the LB driver selector 40 determines that the request selection instruction in the request 58 identifies those requests 46 that utilize the UDP protocol.
- the LB driver selector 40 accesses the LB table 32 and determines that the table entry 30 - 1 correlates request selection instructions that identify requests 46 that should be load balanced based on the use of the UDP protocol with the LVS LB driver 26 - 1 .
- the LB driver selector 40 may then initiate a listener 42 - 4 and a LVS LBD 60 instance.
- the listener 42 - 4 is now also notified upon the arrival of a request 46 to the LB 38 , and upon notification sends any requests 46 that utilize the UDP protocol to the LVS LBD 60 for load balancing.
- each of the LBDs 44 , 52 , 56 and 60 are illustrated as load balancing requests 46 among the same computing servers 24 , it will be appreciated that the LBDs 44 , 52 , 56 and 60 may load balance the specific requests 46 among different sets of computing servers 24 .
- FIG. 2 is a flowchart of a method for implementing a load balancer driver in conjunction with a load balancer according to one example.
- FIG. 2 will be discussed in conjunction with FIGS. 1A-1D .
- the LB driver selector 40 receives the request 36 ( FIG. 1 B) directed to the load balancer 38 to load balance requests 50 based on a first request selection instruction ( FIG. 2 , block 100 ).
- the LB driver selector 40 selects the particular OVN LB driver 26 - 2 from the plurality of load balancer drivers 26 based on the LB table 32 that correlates request selection instructions to corresponding LB drivers 26 of the plurality of LB drivers 26 ( FIG. 2 , block 102 ).
- the LB driver selector 40 causes subsequent requests 46 that are encompassed by the first request selection instruction directed to the load balancer 38 to be load balanced by the first particular OVN LB driver 26 - 2 ( FIG. 2 , block 104 ).
- FIG. 3 is a simplified block diagram of FIG. 1B according to one example.
- the environment 10 includes a system that comprises one or more computing devices, such as the computing device 16 , each computing device comprising a memory and a processor device coupled to the memory.
- the one or more computing devices are to receive the request 50 to load balance requests 46 based on a first request selection instruction and that are directed to the particular load balancer 38 .
- the one or more computing devices are further to select the first particular OVN LB driver 26 - 2 from the plurality of load balancer drivers 26 based on the LB table 32 that correlates request selection instructions to corresponding load balancer drivers 26 of the plurality of load balancer drivers 26 .
- the one or more computing devices are to cause subsequent requests 46 that are encompassed by the first request selection instruction directed to the load balancer 38 to be load balanced by the first particular OVN LB driver 26 - 2 .
- FIG. 4 is a block diagram of a computing device 62 suitable for implementing any of the functions disclosed herein, including, for example, the functionality of the LB service 14 and the LB driver selector 40 .
- the computing device 62 may comprise any computing or electronic device capable of including firmware, hardware, and/or executing software instructions to implement the functionality described herein, such as a computer server, a desktop computing device, a laptop computing device or the like.
- the computing device 62 includes a processor device 64 , a system memory 66 , and a system bus 68 .
- the system bus 68 provides an interface for system components including, but not limited to, the system memory 66 and the processor device 64 .
- the processor device 64 can be any commercially available or proprietary processor.
- the system bus 68 may be any of several types of bus structures that may further interconnect to a memory bus (with or without a memory controller), a peripheral bus, and/or a local bus using any of a variety of commercially available bus architectures.
- the system memory 66 may include non-volatile memory 70 (e.g., read-only memory (ROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), etc.), and volatile memory 74 (e.g., random-access memory (RAM)).
- a basic input/output system (BIOS) 76 may be stored in the non-volatile memory 70 and can include the basic routines that help to transfer information between elements within the computing device 62 .
- the volatile memory 74 may also include a high-speed RAM, such as static RAM, for caching data.
- the computing device 62 may further include or be coupled to a non-transitory computer-readable storage medium such as a storage device 76 , which may comprise, for example, an internal or external hard disk drive (HDD) (e.g., enhanced integrated drive electronics (EIDE) or serial advanced technology attachment (SATA)), HDD (e.g., EIDE or SATA) for storage, flash memory, or the like.
- HDD enhanced integrated drive electronics
- SATA serial advanced technology attachment
- the storage device 76 and other drives associated with computer-readable media and computer-usable media may provide non-volatile storage of data, data structures, computer-executable instructions, and the like.
- a number of modules can be stored in the storage device 76 and in the volatile memory 74 , including an operating system and one or more program modules, such as the LB service 14 and/or the LB driver selector 40 , which may implement the functionality described herein in whole or in part.
- the LB service 14 is a component of the computing device 62 , functionality implemented by the LB service 14 may be attributed to the computing device 62 generally. Moreover, in examples where the LB service 14 comprises software instructions that program the processor device 64 to carry out functionality discussed herein, functionality implemented by the LB service 14 may be attributed herein to the processor device 64 . Similarly, because the LB driver selector 40 is a component of the computing device 62 , functionality implemented by the LB driver selector 40 may be attributed to the computing device 62 generally. Moreover, in examples where the LB driver selector 40 comprises software instructions that program the processor device 64 to carry out functionality discussed herein, functionality implemented by the LB driver selector 40 may be attributed herein to the processor device 64 . It will be appreciated that the LB service 14 and the LB driver selector 40 may be implemented on the same computing device or on different computing devices.
- All or a portion of the examples may be implemented as a computer program product 78 stored on a transitory or non-transitory computer-usable or computer-readable storage medium, such as the storage device 76 , which includes complex programming instructions, such as complex computer-readable program code, to cause the processor device 64 to carry out the steps described herein.
- the computer-readable program code can comprise software instructions for implementing the functionality of the examples described herein when executed on the processor device 64 .
- the computing device 62 may also include a communications interface 80 suitable for communicating with a network as appropriate or desired.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
- Stored Programmes (AREA)
Abstract
Description
- Load balancers typically load balance traffic based on a single criterion, such as load balancing based on a particular protocol, or load balancing based on a particular open systems interconnection (OSI) layer. Not all load balancers load balance equally for the same criterion, and some may be better at load balancing based on one criterion than another. For example, a first load balancer may excel at
layer 7 load balancing, and a second load balancer may excel atlayer 4 load balancing. - The examples disclosed herein implement a load balancer that can implement multiple concurrent load balancer drivers, each of which can load balance selected traffic based on a different criterion. For example, traffic having one characteristic may be load balanced based on
layer 7 content, and traffic having another characteristic may be load balanced based onlayer 4 content. The examples, in some implementations, provide load balancing in a cloud computing environment, and eliminate a need to implement multiple different load balancers in order to load balance different traffic via different load balancing mechanisms. - In one example a method is provided. The method includes receiving a first request directed to a load balancer to load balance requests based on a first request selection instruction. The method further includes selecting a first particular load balancer driver from a plurality of load balancer drivers based on a load balancer table that correlates request selection instructions to corresponding load balancer drivers of the plurality of load balancer drivers. The method further includes causing subsequent requests that are encompassed by the first request selection instruction directed to the load balancer to be load balanced by the first particular load balancer driver.
- In another example a system is provided. The system includes one or more computing devices, each computing device comprising a memory and a processor device coupled to the memory. The one or more computing devices are to receive a first request directed to a load balancer to load balance requests based on a first request selection instruction. The one or more computing devices are further to select a first particular load balancer driver from a plurality of load balancer drivers based on a load balancer table that correlates request selection instructions to corresponding load balancer drivers of the plurality of load balancer drivers. The one or more computing devices are further to cause subsequent requests that are encompassed by the first request selection instruction directed to the load balancer to be load balanced by the first particular load balancer driver.
- In another example a computer program product is provided. The computer program product is stored on a non-transitory computer-readable storage medium and includes instructions configured to cause one or more processor devices to receive a first request directed to a load balancer to load balance requests based on a first request selection instruction. The instructions further cause the one or more processor devices to select a first particular load balancer driver from a plurality of load balancer drivers based on a load balancer table that correlates request selection instructions to corresponding load balancer drivers of the plurality of load balancer drivers. The instructions further cause the one or more processor devices to cause subsequent requests that are encompassed by the first request selection instruction directed to the load balancer to be load balanced by the first particular load balancer driver.
- Individuals will appreciate the scope of the disclosure and realize additional aspects thereof after reading the following detailed description of the examples in association with the accompanying drawing figures.
- The accompanying drawing figures incorporated in and forming a part of this specification illustrate several aspects of the disclosure and, together with the description, serve to explain the principles of the disclosure.
-
FIG. 1 A is a block diagram of an environment in which examples disclosed herein may be implemented; -
FIGS. 1 B-1 D are block diagrams of the environment illustrated inFIG. 1A at subsequent points in time; -
FIG. 2 is a flowchart of a method for implementing a load balancer driver in conjunction with a load balancer according to one example; -
FIG. 3 is a simplified block diagram ofFIG. 1B according to one example; and -
FIG. 4 is a block diagram of a computing device suitable for implementing any of the functions disclosed herein. - The examples set forth below represent the information to enable individuals to practice the examples and illustrate the best mode of practicing the examples. Upon reading the following description in light of the accompanying drawing figures, individuals will understand the concepts of the disclosure and will recognize applications of these concepts not particularly addressed herein. It should be understood that these concepts and applications fall within the scope of the disclosure and the accompanying claims.
- Any flowcharts discussed herein are necessarily discussed in some sequence for purposes of illustration, but unless otherwise explicitly indicated, the examples are not limited to any particular sequence of steps. The use herein of ordinals in conjunction with an element is solely for distinguishing what might otherwise be similar or identical labels, such as “first message” and “second message,” and does not imply a priority, a type, an importance, or other attribute, unless otherwise stated herein. The term “about” used herein in conjunction with a numeric value means any value that is within a range of ten percent greater than or ten percent less than the numeric value. As used herein and in the claims, the articles “a” and “an” in reference to an element refers to “one or more” of the element unless otherwise explicitly specified. The word “or” as used herein and in the claims is inclusive unless contextually impossible. As an example, the recitation of A or B means A, or B, or both A and B.
- Load balancers typically load balance traffic based on a single criterion, such as load balancing based on a particular protocol, or load balancing based on a particular open systems interconnection (OSI) layer. Not all load balancers load balance equally for the same criterion, and some may be better at load balancing based on one criterion than another. For example, a first load balancer may excel at
layer 7 load balancing, and a second load balancer may excel atlayer 4 load balancing. - The examples disclosed herein implement a load balancer that can implement multiple concurrent load balancer drivers, each of which can load balance selected traffic based on a different criterion. For example, traffic having one characteristic may be load balanced based on
layer 7 content, and traffic having another characteristic may be load balanced based onlayer 4 content. The examples, in some implementations, provide load balancing in a cloud computing environment, and eliminate a need to implement multiple different load balancers in order to load balance different traffic via different load balancing mechanisms. In particular, a first request can be directed to a load balancer to balance requests based on a first request selection instruction. In response, based on a load balancer table that correlates request selection instructions to corresponding load balancer drivers, a first load balancer driver can be selected to load balance requests that are encompassed by the first request selection instruction. A second request can be directed to the same load balancer to balance requests based on a second request selection instruction. In response, based on the load balancer table, a second load balancer driver can be selected to load balance requests that are encompassed by the second request selection instruction concurrently while the requests encompassed by the first request selection instruction directed to the load balancer are load balanced by the first load balancer driver. -
FIG. 1A is a block diagram of anenvironment 10 in which examples disclosed herein may be implemented. Theenvironment 10 includes acloud computing environment 12. Thecloud computing environment 12 includes a load balancer (LB)service 14 configured to facilitate load balancing services for external entities, such as anexternal entity 22, that utilize thecloud computing environment 12. TheLB service 14 may, in some examples, execute on acomputing device 16 which includes aprocessor device 18 and amemory 20. The phrase “cloud computing environment” as used herein, refers to a computing environment, often provided by a service provider, which facilitates dynamic and scalable computing resources as needed. A cloud computing environment often utilizes multiple computing devices to implement tasks as needed. Examples of cloud computing environments include Amazon AWS and Microsoft Azure. It should be noted that, while for purposes of illustration the examples are disclosed in the context of a cloud computing environment, the examples disclosed herein are not limited to a cloud computing environment and have applicability to any environment in which load balancing is utilized. - The
external entity 22, such as, by way of non-limiting example, an online store, sells products to endusers 50 via thecloud computing environment 12. As will be discussed in greater detail with regard toFIG. 1 B, end user computers may request information, such as a web page of theexternal entity 22, that is stored on one or more of a plurality of computing servers 24-1-1 24-N (generally, computing servers 24) of aserver group 25. Theexternal entity 22 may desire that such requests first be received by a load balancer that executes in thecloud computing environment 12, and which implements some algorithm, such as a round robin algorithm, for spreading requests out among thevarious computing servers 24. - The
LB service 14 includes a plurality of registered LB drivers 26-1 -26-3 (generally, LB drivers 26). Instances of the LB drivers 26 can be initiated in thecloud computing environment 12 in conjunction with a load balancer, and are the applications that actually perform the load balancing of requests based on one or more criteria. As a new LB driver 26 becomes available, the LB driver 26 registers with theLB service 14 and provides selection information to theLB service 14 that identifies LB capabilities of the respective LB driver 26. As a first example, the Linux Virtual Server (LVS) LB driver 26-1 (“LVS LBD”) registers with theLB service 14 and, as part of the registration process, provides a LB registration record 28-1 that identifies the LB capabilities of the respective LVS LB driver 26-1. In this example, the LB registration record 28-1 indicates that the LVS LB driver 26-1 can load balance traffic that utilizes the User Datagram Protocol (UDP protocol), can access any port that utilizes the UDP protocol, and utilizes open systems interconnection (OSI) layer four (L4) rules only. In some implementations, the LB drivers 26 may be implemented via a plug-in technology, such that, for example, the registration process may include theLB service 14 querying each LB driver 26 via a plug-in interface to determine the capabilities of the LB drivers 26. - As a second example, the Open Virtual Network (OVN) LB driver 26-2 (“OVN LBD”) registers with the
LB service 14 and, as part of the registration process, provides selection information in the form of a LB registration record 28-2 that identifies the LB capabilities of the respective OVN LB driver 26-2. In this example, the LB registration record 28-2 indicates that the OVN LB driver 26-2 can load balance traffic that utilizes the TCP protocol, can access any port that utilizes the Transmission Control Protocol (TCP) protocol, and utilizes layer four (L4) rules only. - As a third example, the HAProxy LB driver 26-3 (“HAPROXY LBD”) registers with the
LB service 14 and, as part of the registration process, provides selection information in the form of a LB registration record 28-3 that identifies the LB capabilities of the respective HAProxy LB driver 26-3. In this example, the LB registration record 28-3 indicates that the HAProxy LB driver 26-3 can load balance traffic that utilizes the TCP protocol, can access any port that utilizes the TCP protocol, and utilizes layer seven (L7) rules or layer four rules. - After receiving the LB registration record 28-1, the
LB service 14 generates a table entry 30-1 that correlates subsequent request selection instructions that may be received from an entity that desires load balancing services to the load balancing capability of the LVS LB driver 26-1, and stores such table entry 30-1 in a LB table 32. In this example, theLB service 14 correlates request selection instructions that instruct a LB to load balance requests that arrive on a UDP port with the LVS LB driver 26-1. After receiving the LB registration record 28-2, theLB service 14 generates a table entry 30-2 that correlates subsequent request selection instructions that may be received from an entity that desires load balancing services to the load balancing capability of the OVN LB driver 26-2, and stores such table entry 30-2 in the LB table 32. In this example, theLB service 14 correlates request selection instructions that instruct a LB to load balance requests that arrive onport 80 with the OVN LB driver 26-2. - After receiving the LB registration record 28-3, the
LB service 14 generates a table entry 30-3 that correlates subsequent request selection instructions that may be received from an entity that desires load balancing services to the load balancing capability of the HAProxy LB driver 26-3, and stores such table entry 30-3 in the LB table 32. In this example, theLB service 14 correlates request selection instructions that instruct a LB to load balance requests that arrive onport 443 with the HAProxy LB driver 26-3. Because the HAProxy LB driver 26-3 is also capable of implementing L7 load balancing, theLB service 14 generates a table entry 30-4 that correlates request selection instructions that instruct a LB to load balance requests based on L7 rules with the HAProxy LB driver 26-3, and stores the table entry 30-4 in the LB table 32. TheLB service 14 may also generate a table entry 30-5 that will identify a default LB to be used as a default, such as when theLB service 14 receives no specific request selection instructions for a LB, or when theLB service 14 receives request selection instructions that are not understood by theLB service 14. - Assume that at a time T1, a
computing device 34 associated with theexternal entity 22 sends arequest 36 to theLB service 14 requesting that theLB service 14 establish a load balancer for the IP address 192.168.123.45. In response, theLB service 14 initiates aLB 38. TheLB 38 may execute on thecomputing device 16 or on another computing device in thecloud computing environment 12. TheLB 38 initiates aLB driver selector 40, which will be described in greater detail below. TheLB 38 represents a destination for any requests addressed to IP address 192.168.123.45, which may, to end user computers, be associated with the online store of theexternal entity 22. In some examples, in the absence of immediate specific request selection instructions, theLB driver selector 40 may access the LB table 32 and select the default LB driver, in this case, the HAProxy LB driver 26-3, and cause any subsequently received requests directed to theLB 38 to be load balanced by an instance of the HAProxy LB driver 26-3. Specifically, theLB driver selector 40 may initiate a listener 42-1 and aHAProxy LBD 44 instance. The listener 42-1 is notified upon the arrival of anyrequests 46 from theend users 50 that are directed to theLB 38, and upon notification sends therequests 46 to theHAProxy LBD 44 for load balancing. - Referring now to
FIG. 1 B, which depicts theenvironment 10 illustrated inFIG. 1 A at a subsequent point in time T2, assume that thecomputing device 34 sends arequest 50 to theLB driver selector 40 that includes a request selection instruction that identifies certain requests that may be subsequently received by theLB 38 and indicates that such certain requests should be load balanced among the computingservers 24. TheLB driver selector 40 receives therequest 50, either directly or via theLB service 14, and selects a particular LB driver 26 from the plurality of LB drivers 26 based on the LB table 32 that correlates request selection instructions to corresponding LB drivers 26. In this case, theLB driver selector 40 determines that the request selection instruction in therequest 50 identifies thoserequests 46 that will be directed toport 80 of the LB 38 (i.e., to 192.168.123.45:80). TheLB driver selector 40 accesses the LB table 32 and determines that the table entry 30-2 correlates request selection instructions that identifyrequests 46 sent to port 80 with the OVN LB driver 26-2. TheLB driver selector 40 may then initiate a listener 42-2 and anOVN LBD 52 instance. The listener 42-2 is now also notified upon the arrival of arequest 46 to theLB 38, and upon notification sends anyrequests 46 directed toport 80 to theOVN LBD 52 for load balancing. Anyother requests 46 will be sent by the listener 42-1 to theHAProxy LB driver 44 for load balancing. - Referring now to
FIG. 1C , which depicts theenvironment 10 illustrated inFIG. 1B at a subsequent point in time T3, assume that thecomputing device 34 sends arequest 54 to theLB driver selector 40 that includes a request selection instruction that identifies certain requests that may be subsequently received by theLB 38 and indicates that such certain requests should be load balanced among the computingservers 24. TheLB driver selector 40 receives therequest 54, either directly or via theLB service 14, and selects a particular LB driver 26 from the plurality of LB drivers 26 based on the LB table 32 that correlates request selection instructions to corresponding LB drivers 26. In this case, theLB driver selector 40 determines that the request selection instruction in therequest 54 identifies thoserequests 46 that will be directed toport 123 of the LB 38 (i.e., to 192.168.123.45:123), and the request selection instruction indicates that allsuch requests 46 should be load balanced based on the content oflayer 7 ofsuch requests 46. TheLB driver selector 40 accesses the LB table 32 and determines that the table entry 30-4 correlates request selection instructions that identifyrequests 46 that should be load balanced based onlayer 7 with the LB driver 26-3. TheLB driver selector 40 may then initiate a listener 42-3 and aHAProxy LBD 56 instance. The listener 42-3 is now also notified upon the arrival of arequest 46 to theLB 38, and upon notification sends anyrequests 46 directed toport 123 to theHAProxy LBD 56 for load balancing. - Referring now to
FIG. 1D , which depicts theenvironment 10 illustrated inFIG. 1C at a subsequent point in time T4, assume that thecomputing device 34 sends arequest 58 to theLB driver selector 40 that includes a request selection instruction that identifies certain requests that may be subsequently received by theLB 38 and indicates that such certain requests should be load balanced among the computingservers 24. TheLB driver selector 40 receives therequest 58, either directly or via theLB service 14, and selects a particular LB driver 26 from the plurality of LB drivers 26 based on the LB table 32 that correlates request selection instructions to corresponding LB drivers 26. In this case, theLB driver selector 40 determines that the request selection instruction in therequest 58 identifies thoserequests 46 that utilize the UDP protocol. TheLB driver selector 40 accesses the LB table 32 and determines that the table entry 30-1 correlates request selection instructions that identifyrequests 46 that should be load balanced based on the use of the UDP protocol with the LVS LB driver 26-1. TheLB driver selector 40 may then initiate a listener 42-4 and aLVS LBD 60 instance. The listener 42-4 is now also notified upon the arrival of arequest 46 to theLB 38, and upon notification sends anyrequests 46 that utilize the UDP protocol to theLVS LBD 60 for load balancing. - While for purposes of simplicity each of the LBDs 44, 52, 56 and 60 are illustrated as load balancing requests 46 among the
same computing servers 24, it will be appreciated that the LBDs 44, 52, 56 and 60 may load balance thespecific requests 46 among different sets ofcomputing servers 24. -
FIG. 2 is a flowchart of a method for implementing a load balancer driver in conjunction with a load balancer according to one example.FIG. 2 will be discussed in conjunction withFIGS. 1A-1D . TheLB driver selector 40 receives the request 36 (FIG. 1 B) directed to theload balancer 38 to load balance requests 50 based on a first request selection instruction (FIG. 2 , block 100). TheLB driver selector 40 selects the particular OVN LB driver 26-2 from the plurality of load balancer drivers 26 based on the LB table 32 that correlates request selection instructions to corresponding LB drivers 26 of the plurality of LB drivers 26 (FIG. 2 , block 102). TheLB driver selector 40 causessubsequent requests 46 that are encompassed by the first request selection instruction directed to theload balancer 38 to be load balanced by the first particular OVN LB driver 26-2 (FIG. 2 , block 104). -
FIG. 3 is a simplified block diagram ofFIG. 1B according to one example. Theenvironment 10 includes a system that comprises one or more computing devices, such as thecomputing device 16, each computing device comprising a memory and a processor device coupled to the memory. The one or more computing devices are to receive therequest 50 to load balance requests 46 based on a first request selection instruction and that are directed to theparticular load balancer 38. The one or more computing devices are further to select the first particular OVN LB driver 26-2 from the plurality of load balancer drivers 26 based on the LB table 32 that correlates request selection instructions to corresponding load balancer drivers 26 of the plurality of load balancer drivers 26. The one or more computing devices are to causesubsequent requests 46 that are encompassed by the first request selection instruction directed to theload balancer 38 to be load balanced by the first particular OVN LB driver 26-2. -
FIG. 4 is a block diagram of acomputing device 62 suitable for implementing any of the functions disclosed herein, including, for example, the functionality of theLB service 14 and theLB driver selector 40. Thecomputing device 62 may comprise any computing or electronic device capable of including firmware, hardware, and/or executing software instructions to implement the functionality described herein, such as a computer server, a desktop computing device, a laptop computing device or the like. Thecomputing device 62 includes aprocessor device 64, asystem memory 66, and asystem bus 68. Thesystem bus 68 provides an interface for system components including, but not limited to, thesystem memory 66 and theprocessor device 64. Theprocessor device 64 can be any commercially available or proprietary processor. - The
system bus 68 may be any of several types of bus structures that may further interconnect to a memory bus (with or without a memory controller), a peripheral bus, and/or a local bus using any of a variety of commercially available bus architectures. Thesystem memory 66 may include non-volatile memory 70 (e.g., read-only memory (ROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), etc.), and volatile memory 74 (e.g., random-access memory (RAM)). A basic input/output system (BIOS) 76 may be stored in thenon-volatile memory 70 and can include the basic routines that help to transfer information between elements within thecomputing device 62. Thevolatile memory 74 may also include a high-speed RAM, such as static RAM, for caching data. - The
computing device 62 may further include or be coupled to a non-transitory computer-readable storage medium such as astorage device 76, which may comprise, for example, an internal or external hard disk drive (HDD) (e.g., enhanced integrated drive electronics (EIDE) or serial advanced technology attachment (SATA)), HDD (e.g., EIDE or SATA) for storage, flash memory, or the like. Thestorage device 76 and other drives associated with computer-readable media and computer-usable media may provide non-volatile storage of data, data structures, computer-executable instructions, and the like. Although the description of computer-readable media above refers to an HDD, it should be appreciated that other types of media that are readable by a computer, such as Zip disks, magnetic cassettes, flash memory cards, cartridges, and the like, may also be used in the operating environment, and, further, that any such media may contain computer-executable instructions for performing novel methods of the disclosed examples. - A number of modules can be stored in the
storage device 76 and in thevolatile memory 74, including an operating system and one or more program modules, such as theLB service 14 and/or theLB driver selector 40, which may implement the functionality described herein in whole or in part. - Because the
LB service 14 is a component of thecomputing device 62, functionality implemented by theLB service 14 may be attributed to thecomputing device 62 generally. Moreover, in examples where theLB service 14 comprises software instructions that program theprocessor device 64 to carry out functionality discussed herein, functionality implemented by theLB service 14 may be attributed herein to theprocessor device 64. Similarly, because theLB driver selector 40 is a component of thecomputing device 62, functionality implemented by theLB driver selector 40 may be attributed to thecomputing device 62 generally. Moreover, in examples where theLB driver selector 40 comprises software instructions that program theprocessor device 64 to carry out functionality discussed herein, functionality implemented by theLB driver selector 40 may be attributed herein to theprocessor device 64. It will be appreciated that theLB service 14 and theLB driver selector 40 may be implemented on the same computing device or on different computing devices. - All or a portion of the examples may be implemented as a
computer program product 78 stored on a transitory or non-transitory computer-usable or computer-readable storage medium, such as thestorage device 76, which includes complex programming instructions, such as complex computer-readable program code, to cause theprocessor device 64 to carry out the steps described herein. Thus, the computer-readable program code can comprise software instructions for implementing the functionality of the examples described herein when executed on theprocessor device 64. - The
computing device 62 may also include acommunications interface 80 suitable for communicating with a network as appropriate or desired. - Individuals will recognize improvements and modifications to the preferred examples of the disclosure. All such improvements and modifications are considered within the scope of the concepts disclosed herein and the claims that follow.
Claims (20)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/272,682 US11962643B2 (en) | 2019-02-11 | 2019-02-11 | Implementing multiple load balancer drivers for a single load balancer |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/272,682 US11962643B2 (en) | 2019-02-11 | 2019-02-11 | Implementing multiple load balancer drivers for a single load balancer |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20200259892A1 true US20200259892A1 (en) | 2020-08-13 |
| US11962643B2 US11962643B2 (en) | 2024-04-16 |
Family
ID=71944689
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US16/272,682 Active 2042-02-07 US11962643B2 (en) | 2019-02-11 | 2019-02-11 | Implementing multiple load balancer drivers for a single load balancer |
Country Status (1)
| Country | Link |
|---|---|
| US (1) | US11962643B2 (en) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN113572856A (en) * | 2021-09-18 | 2021-10-29 | 云宏信息科技股份有限公司 | Method, control method and medium for configuring seven-layer load balancing for OVN architecture |
| CN115378868A (en) * | 2022-08-18 | 2022-11-22 | 中电云数智科技有限公司 | System and method for realizing message processing based on SNAT resource pool |
| US11601358B2 (en) * | 2020-12-17 | 2023-03-07 | HashiCorp | Cross datacenter communication using a mesh gateway |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9704393B2 (en) * | 2011-01-11 | 2017-07-11 | Videonetics Technology Private Limited | Integrated intelligent server based system and method/systems adapted to facilitate fail-safe integration and/or optimized utilization of various sensory inputs |
| US9705977B2 (en) * | 2011-04-20 | 2017-07-11 | Symantec Corporation | Load balancing for network devices |
| GB2518298A (en) * | 2013-09-13 | 2015-03-18 | Box Inc | High-availability architecture for a cloud-based concurrent-access collaboration platform |
| CN104579996A (en) | 2013-10-17 | 2015-04-29 | 中国电信股份有限公司 | Cluster load balancing method and system |
-
2019
- 2019-02-11 US US16/272,682 patent/US11962643B2/en active Active
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11601358B2 (en) * | 2020-12-17 | 2023-03-07 | HashiCorp | Cross datacenter communication using a mesh gateway |
| US20230208746A1 (en) * | 2020-12-17 | 2023-06-29 | HashiCorp | Cross datacenter communication using a mesh gateway |
| US12388742B2 (en) * | 2020-12-17 | 2025-08-12 | HashiCorp | Cross datacenter communication using a mesh gateway |
| CN113572856A (en) * | 2021-09-18 | 2021-10-29 | 云宏信息科技股份有限公司 | Method, control method and medium for configuring seven-layer load balancing for OVN architecture |
| CN115378868A (en) * | 2022-08-18 | 2022-11-22 | 中电云数智科技有限公司 | System and method for realizing message processing based on SNAT resource pool |
Also Published As
| Publication number | Publication date |
|---|---|
| US11962643B2 (en) | 2024-04-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN109688235B (en) | Virtual network service processing method, device and system, controller, storage medium | |
| US10447775B2 (en) | System and method to balance servers based on server load status | |
| US11316786B2 (en) | Systems and methods for directly responding to distributed network traffic | |
| US9325785B2 (en) | Device, system, and method for client-governed session persistency between one or more clients and servers of a data center | |
| US8539068B2 (en) | Methods and systems for providing customized domain messages | |
| US10178033B2 (en) | System and method for efficient traffic shaping and quota enforcement in a cluster environment | |
| US10715449B2 (en) | Layer 2 load balancing system | |
| US11962643B2 (en) | Implementing multiple load balancer drivers for a single load balancer | |
| CN108933829A (en) | A kind of load-balancing method and device | |
| US11323511B2 (en) | Migrating a network service to a container-based platform | |
| CN114513465B (en) | Load balancing method, load balancing device, electronic device and storage medium | |
| US10341292B2 (en) | Increased port address space | |
| CA2753878C (en) | Smart routing | |
| US11159434B2 (en) | Adaptive rate limiting of flow probes | |
| CN112954084B (en) | Edge computing processing method, network function example and edge service management and control center | |
| US11019139B2 (en) | Ranked session affinity to improve load balancing efficiency for stateful requests | |
| WO2020248363A1 (en) | Load balancing method for server and related apparatus | |
| US11134124B2 (en) | Method and system for connecting between terminals in multimedia communication | |
| US10958580B2 (en) | System and method of performing load balancing over an overlay network | |
| US12120178B2 (en) | Allowing a network file system (NFS) client information handling system more than one session in parallel over a same network interface card (NIC) | |
| CN113132133B (en) | Method, device, computing equipment and storage medium for distributing user configuration data | |
| US20250379864A1 (en) | Automated user-centric server management | |
| KR20190134040A (en) | Method for auto-scaling of web server and was in cloud environment and was managing server using the same | |
| CN119520407A (en) | Traffic forwarding method, device, computer equipment, storage medium and program product |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE AFTER FINAL ACTION FORWARDED TO EXAMINER |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: ADVISORY ACTION COUNTED, NOT YET MAILED |
|
| STCV | Information on status: appeal procedure |
Free format text: NOTICE OF APPEAL FILED |
|
| STCV | Information on status: appeal procedure |
Free format text: APPEAL BRIEF (OR SUPPLEMENTAL BRIEF) ENTERED AND FORWARDED TO EXAMINER |
|
| STCV | Information on status: appeal procedure |
Free format text: EXAMINER'S ANSWER TO APPEAL BRIEF MAILED |
|
| STCV | Information on status: appeal procedure |
Free format text: ON APPEAL -- AWAITING DECISION BY THE BOARD OF APPEALS |
|
| STCV | Information on status: appeal procedure |
Free format text: BOARD OF APPEALS DECISION RENDERED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |