Documentation ¶
Index ¶
Constants ¶
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
type ConnPool ¶
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(logOutput io.Writer, 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 ¶
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.
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()