Package

com.twitter.finagle

loadbalancer

Permalink

package loadbalancer

This package implements client side load balancing algorithms.

As an end-user, see the Balancers API to create instances which can be used to configure a Finagle client with various load balancing strategies.

As an implementor, each algorithm gets its own subdirectory and is exposed via the Balancers object. Several convenient traits are provided which factor out common behavior and can be mixed in (i.e. Balancer, DistributorT, NodeT, and Updating).

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. loadbalancer
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. abstract class LoadBalancerFactory extends AnyRef

    Permalink

    A thin interface around a Balancer's constructor that allows Finagle to pass in context from the stack to the balancers at construction time.

    A thin interface around a Balancer's constructor that allows Finagle to pass in context from the stack to the balancers at construction time.

    See also

    The user guide for more details.

    Balancers for a collection of available balancers.

Value Members

  1. object Balancers

    Permalink

    Constructor methods for various load balancers.

    Constructor methods for various load balancers. The methods take balancer specific parameters and return a LoadBalancerFactory that allows you to easily inject a balancer into the Finagle stack via client configuration.

    Example:
    1. configuring a client with a load balancer

      $Protocol.client
        .withLoadBalancer(Balancers.aperture())
        .newClient(...)
    See also

    The user guide for more details.

  2. object DefaultBalancerFactory extends LoadBalancerFactory

    Permalink
  3. object LoadBalancerFactory

    Permalink

    Exposes a Stack.Module which composes load balancing into the respective Stack.

    Exposes a Stack.Module which composes load balancing into the respective Stack. This is mixed in by default into Finagle's StackClient. The only necessary configuration is a Dest which represents a changing collection of addresses that is load balanced over.

  4. object defaultBalancer extends GlobalFlag[String]

    Permalink

    A GlobalFlag that changes the default balancer for every client in the process.

    A GlobalFlag that changes the default balancer for every client in the process. Valid choices are ['heap', 'choice', and 'aperture'].

    To configure the load balancer on a per-client granularity instead, use the withLoadBalancer method like so:

    {{ val balancer = Balancers.aperture(...) $Protocol.client.withLoadBalancer(balancer) }}

  5. package exp

    Permalink
  6. object perHostStats extends GlobalFlag[Boolean]

    Permalink

    A GlobalFlag which allows the configuration of per host (or endpoint) stats to be toggled.

    A GlobalFlag which allows the configuration of per host (or endpoint) stats to be toggled. Note, these are off by default because they tend to be expensive, especially when the size of the destination cluster is large. However, they can be quite useful for debugging.

Inherited from AnyRef

Inherited from Any

Ungrouped