View Source
const (
	RpcNomad     RPCType = 0x01
	RpcRaft              = 0x02
	RpcMultiplex         = 0x03
	RpcTLS               = 0x04
	RpcStreaming         = 0x05

	// RpcMultiplexV2 allows a multiplexed connection to switch modes between
	// RpcNomad and RpcStreaming per opened stream.
	RpcMultiplexV2 = 0x06


This section is empty.


func NewClientCodec

func NewClientCodec(conn io.ReadWriteCloser) rpc.ClientCodec

NewClientCodec returns a new rpc.ClientCodec to be used to make RPC calls.

func NewServerCodec

func NewServerCodec(conn io.ReadWriteCloser) rpc.ServerCodec

NewServerCodec returns a new rpc.ServerCodec to be used to handle RPCs.


type Conn

type Conn struct {

	// contains filtered or unexported fields


Conn is a pooled connection to a Nomad server

func (*Conn) Close

func (c *Conn) Close() error

type ConnPool

type ConnPool struct {

	// contains filtered or unexported fields


ConnPool is used to maintain a connection pool to other Nomad servers. This is used to reduce the latency of RPC requests between servers. It is only used to pool connections in the rpcNomad mode. Raft connections are pooled separately.

func NewPool

func NewPool(logger hclog.Logger, maxTime time.Duration, maxStreams int, tlsWrap tlsutil.RegionWrapper) *ConnPool

NewPool is used to make a new connection pool Maintain at most one connection per host, for up to maxTime. Set maxTime to 0 to disable reaping. maxStreams is used to control the number of idle streams allowed. If TLS settings are provided outgoing connections use TLS.

func (*ConnPool) RPC

func (p *ConnPool) RPC(region string, addr net.Addr, version int, method string, args interface{}, reply interface{}) error

RPC is used to make an RPC call to a remote host

func (*ConnPool) ReloadTLS

func (p *ConnPool) ReloadTLS(tlsWrap tlsutil.RegionWrapper)

ReloadTLS reloads TLS configuration on the fly

func (*ConnPool) SetConnListener

func (p *ConnPool) SetConnListener(l chan<- *yamux.Session)

SetConnListener is used to listen to new connections being made. The channel will be closed when the conn pool is closed or a new listener is set.

func (*ConnPool) Shutdown

func (p *ConnPool) Shutdown() error

Shutdown is used to close the connection pool

type RPCType

type RPCType byte

type StreamClient

type StreamClient struct {

	// contains filtered or unexported fields


streamClient is used to wrap a stream with an RPC client

func (*StreamClient) Close

func (sc *StreamClient) Close()

Source Files