The source code for this example is released with your software in the following locations:
- C source code:
- DDL source:
The Sync Equilibrium sample application creates a basic HTTP load-balancing system designed to operate quickly in the network data path on the Multiservices PIC. The application is similar to a reverse-proxy Web application load balancer, which can be deployed adjacent to the Web server cluster for added performance and high availability.
The application is designed to load balance by equally distributing new HTTP connections among a cluster of web servers. This type of application is deployed on "edge" interfaces connected to server clusters.
- ODL source:
When the application receives a new connection and redirects it, it presumes an HTTP session is created between the client and server. The application routes all future traffic in the same flow to the same server to preserve the HTTP session. This is sometimes called server affinity.
The application assumes that a session exists between the client and server for all received connections until they time out. The user can configure the timeout value in seconds for each cluster of servers.
The application bases its definition of a traffic flow on traffic coming from or going to a given client. Multiple connections from the same source go to the same server, rather than being distributed to various servers.
The application attempts to direct connection requests for new traffic flows to the server with the least number of existing flows. It does not terminate connections and reinitiate them, but instead manipulates the packets to route them to the optimal server in the cluster.
The application supports correcting the "Host" field in HTTP requests that contain IP addresses.
The example supports configuring multiple, load-balanced applications using server clusters (farms). Each cluster can contain an arbitrary number of servers but can have only a single "façade" address.
The administrator can configure the Web servers in a cluster to probe servers with periodic HTTP requests for the servers' root resources. A server that replies with a valid HTTP response is assumed to be operational (the application does not perform content validation on the HTTP responses received).
The application retries connecting to a server marked as down after a configurable time limit. If it receives no reply after that time for a configurable number of times in a row, the application marks the server as down. The application does not distribute traffic to a server marked down; and any existing sessions to a down server are invalid and can be flushed.
The application acts only on HTTP traffic destined to TCP port 80 by default, although the port is a per-cluster configurable parameter.
The application has both a management component and a data component:
- The management component is responsible for providing the user interface and sending the system configuration to the data component. The management component also receives information from the data component to generate the command output shown in User Interface for the Sync Equilibrium Application.
User Interface for the Sync Equilibrium Application
- The data component is responsible for the main load balancing behavior, receiving configuration from the management component, monitoring the servers, ageing the sessions, and sending status updates to the management component.
© 2007-2009 Juniper Networks, Inc. All rights reserved. The information contained herein is confidential information of Juniper Networks, Inc., and may not be used, disclosed, distributed, modified, or copied without the prior written consent of Juniper Networks, Inc. in an express license. This information is subject to change by Juniper Networks, Inc. Juniper Networks, the Juniper Networks logo, and JUNOS are registered trademarks of Juniper Networks, Inc. in the United States and other countries. All other trademarks, service marks, registered trademarks, or registered service marks are the property of their respective owners.
Generated on Sun May 30 20:26:47 2010 for Juniper Networks Partner Solution Development Platform JUNOS SDK 10.2R1 by Doxygen 1.4.5