Supporting millions of http connections with Zen Load Balancer

Posted by Zevenet | 30 October, 2015 | Technical

Every year increases the world population connected to the internet, we have more devices connected and life becomes more digital oriented. This means using more digital services and more users. We present you a solution to adapt your infrastructure to your user base growth.

We are going to approach this case with a two-layered load balancing architecture. We’ll use two types of farms, HTTP and L4xNAT profiles.

The HTTP profile is a high-level of abstraction layer (application layer on ISO model, or layer 7) with advanced customizations and features like: cookie insertion, session persistence, HTTPS backends and SSL offload among others. This features are really useful but they come at a performance cost, and here is where the L4xNAT profile comes handy.

The L4xNAT profile is a low-level of abstraction layer (transport layer on ISO model, or layer 4) allowing amazingly fast load balancing at a very low performance cost. The combination of these two types of load balancing permits a great deal of concurrent connections with the features of the HTTP profile.

First layer, Zen Load Balancer with L4xNAT profile with the next configuration:

Protocol type: TCP
NAT type: NAT
Load Balance Algorithm: Weight
Use of FarmGuardian to check Backend Servers: On
Command to check: check_tcp -H HOST -p PORT

This is an example FarmGuardian command to test every host accepting connections on its configured port. For more information about FarmGuardian and its configuration look here.

Now, for every Zen Load Balancer on the second balancing layer we’ll create an HTTP profile farm. We can use as many Zen Load Balancers on this layer as we need, we can also increase them as needed, any time.

Number of working threads: 10240
Rewrite Location headers: Enabled
Farm listener: HTTP or HTTPS, as needed.
Add service: Backends
Persistence session: COOKIE
Persistence session time to limit: 300
Persistence session identifier: ASPSESSIONID
Least response: Enabled

A very important situation to take into account, specially in the most critical part of this arquitecture, the first balancing layer, is to eliminate a single point of failure, this can be achieved using a Zen Load Balancer cluster.

Please comment if you have any thought about this.


Related Blogs

Posted by zenweb | 18 April 2017
Netdev Conf is a community-driven conference dedicated to technical Linux networking where the most important and relevant contributors, maintainers and open source supported companies meet together to present the brand…
Posted by zenweb | 17 October 2016
These two pages were the beginning of Load Balancing with nftables project, developed between Pablo Neira (Netfilter Core Team) and Laura García (Zen Load Balancer Team) and presented at the last Netdev 1.2…
Posted by zenweb | 10 October 2016
In this post we're going to highlight the most important topics and discussions addressed in Netdev 1.2 in Tokyo the last 5th-7th of October to create the networking evolution in…