pool

package
v1.1.17 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 25, 2022 License: MPL-2.0 Imports: 15 Imported by: 58

Documentation

Index

Constants

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
)

Variables

This section is empty.

Functions

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.

Types

type Conn

type Conn struct {
	// contains filtered or unexported fields
}

Conn is a pooled connection to a Nomad server

func (*Conn) AcceptStream added in v1.0.7

func (c *Conn) AcceptStream() (net.Conn, error)

func (*Conn) Close

func (c *Conn) Close() error

func (*Conn) IsClosed added in v1.0.7

func (c *Conn) IsClosed() bool

type ConnPool

type ConnPool struct {
	sync.Mutex
	// 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<- *Conn)

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

func (*ConnPool) StreamingRPC added in v0.11.0

func (p *ConnPool) StreamingRPC(region string, addr net.Addr, version int) (net.Conn, error)

StreamingRPC is used to make an streaming RPC call. Callers must close the connection when done.

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()

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL