# Class Algorithm

All load balancers utilize an algorithm that defines how traffic should be directed between back-end nodes. The default algorithm for newly created load balancers is RANDOM, which can be overridden at creation time or changed after the load balancer has been initially provisioned. The algorithm name is to be constant within a major revision of the load balancing API, though new algorithms may be created with a unique algorithm name within a given major revision of the service API.

Accepted options are:

- LEAST_CONNECTIONS: The node with the lowest number of connections will receive requests.
- RANDOM: Back-end servers are selected at random.
- ROUND_ROBIN: Connections are routed to each of the back-end servers in turn.
- WEIGHTED_LEAST_CONNECTIONS: Each request will be assigned to a node based on the number of concurrent connections to the node and its weight.
- WEIGHTED_ROUND_ROBIN: A round robin algorithm, but with different proportions of traffic being directed to the back-end nodes. Weights must be defined as part of the load balancer's node configuration.

  OpenCloud\Common\Base
  OpenCloud\Common\Resource\BaseResource
  OpenCloud\Common\Resource\PersistentResource
  OpenCloud\LoadBalancer\Resource\AbstractResource
  OpenCloud\LoadBalancer\Resource\ReadOnlyResource
  OpenCloud\LoadBalancer\Resource\Algorithm

Namespace: OpenCloud\LoadBalancer\Resource
Located at OpenCloud/LoadBalancer/Resource/Algorithm.php

Methods inherited from OpenCloud\LoadBalancer\Resource\ReadOnlyResource
`create(), delete(), update()`

Methods inherited from OpenCloud\LoadBalancer\Resource\AbstractResource
`createJson(), refresh(), refreshFromParent(), updateJson()`

Methods inherited from OpenCloud\Common\Resource\PersistentResource
`checkExtension(), getAlias(), noCreate(), noDelete(), noUpdate(), refreshFromLocationUrl(), waitFor()`

Methods inherited from OpenCloud\Common\Resource\BaseResource
`__construct(), findLink(), getClient(), getMetadata(), getParent(), getService(), getUrl(), jsonCollectionElement(), jsonCollectionName(), jsonName(), parseResponse(), primaryKeyField(), resourceName(), setMetadata(), setParent(), setService()`

Methods inherited from OpenCloud\Common\Base
`__call(), checkJsonError(), generateUuid(), getInstance(), getJsonHeader(), getLogger(), getProperty(), makeResourceIteratorOptions(), populate(), propertyExists(), setLogger(), setProperty(), stripNamespace(), toCamel(), toUnderscores()`

Properties summary
`public mixed` | $name | `` | #
`protected static string` | $json_name | `'algorithm'` | #
`protected static string` | $url_resource | `'loadbalancers/algorithms'` | #

Properties inherited from OpenCloud\Common\Resource\BaseResource
`$metadata, $parent, $service`

Properties inherited from OpenCloud\Common\Base
`$aliases`