Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Spec ¶
func Spec() yarpcconfig.PeerListSpec
Spec returns a configuration specification for the round-robin peer list implementation, making it possible to select the least recently chosen peer with transports that use outbound peer list configuration (like HTTP).
cfg := yarpcconfig.New() cfg.MustRegisterPeerList(roundrobin.Spec())
This enables the round-robin peer list:
outbounds: otherservice: unary: http: url: https://host:port/rpc round-robin: peers: - 127.0.0.1:8080 - 127.0.0.1:8081
Other than a specific peer or peers list, use any peer list updater registered with a yarpc Configurator. The configuration allows for alternative initial allocation capacity and a fail-fast option. With fail-fast enabled, the peer list will return an error immediately if no peers are available (connected) at the time the request is sent.
round-robin: peers: - 127.0.0.1:8080 capacity: 1 failFast: true
func SpecWithOptions ¶ added in v1.42.1
func SpecWithOptions(options ...ListOption) yarpcconfig.PeerListSpec
SpecWithOptions accepts additional list constructor options.
Types ¶
type Configuration ¶ added in v1.31.0
Configuration descripes how to build a round-robin peer list.
type List ¶
type List struct {
*abstractlist.List
}
List is a PeerList which rotates which peers are to be selected in a circle
type ListOption ¶
type ListOption func(*listConfig)
ListOption customizes the behavior of a roundrobin list.
func Capacity ¶
func Capacity(capacity int) ListOption
Capacity specifies the default capacity of the underlying data structures for this list.
Defaults to 10.
func FailFast ¶ added in v1.42.0
func FailFast() ListOption
FailFast indicates that the peer list should not wait for a peer to become available when choosing a peer.
This option is preferrable when the better failure mode is to retry from the origin, since another proxy instance might already have a connection.
func Logger ¶ added in v1.42.1
func Logger(logger *zap.Logger) ListOption
Logger specifies a logger.