1 <?php
2 /**
3 * Copyright 2012-2014 Rackspace US, Inc.
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18 namespace OpenCloud\LoadBalancer\Resource;
19
20 /**
21 * All load balancers utilize an algorithm that defines how traffic should be
22 * directed between back-end nodes. The default algorithm for newly created load
23 * balancers is RANDOM, which can be overridden at creation time or changed
24 * after the load balancer has been initially provisioned. The algorithm name is
25 * to be constant within a major revision of the load balancing API, though new
26 * algorithms may be created with a unique algorithm name within a given major
27 * revision of the service API.
28 *
29 * Accepted options are:
30 *
31 * * LEAST_CONNECTIONS: The node with the lowest number of connections will
32 * receive requests.
33 *
34 * * RANDOM: Back-end servers are selected at random.
35 *
36 * * ROUND_ROBIN: Connections are routed to each of the back-end servers in turn.
37 *
38 * * WEIGHTED_LEAST_CONNECTIONS: Each request will be assigned to a node based
39 * on the number of concurrent connections to the node and its weight.
40 *
41 * * WEIGHTED_ROUND_ROBIN: A round robin algorithm, but with different
42 * proportions of traffic being directed to the back-end nodes. Weights
43 * must be defined as part of the load balancer's node configuration.
44 */
45 class Algorithm extends ReadOnlyResource
46 {
47 public $name;
48
49 protected static $json_name = 'algorithm';
50 protected static $url_resource = 'loadbalancers/algorithms';
51 }
52