zrpc

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Sep 2, 2026 License: MIT Imports: 23 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// RoutePrefer falls back to normal load balancing when the target is unavailable.
	RoutePrefer = route.Prefer
	// RouteRequire fails the call when the target is unavailable.
	RouteRequire = route.Require
)

Variables

View Source
var (
	// WithDialOption is an alias of internal.WithDialOption.
	WithDialOption = internal.WithDialOption
	// WithNonBlock sets the dialing to be nonblock.
	WithNonBlock = internal.WithNonBlock
	// WithBlock sets the dialing to be blocking.
	// Deprecated: blocking dials are not recommended by gRPC.
	WithBlock = internal.WithBlock
	// WithStreamClientInterceptor is an alias of internal.WithStreamClientInterceptor.
	WithStreamClientInterceptor = internal.WithStreamClientInterceptor
	// WithTimeout is an alias of internal.WithTimeout.
	WithTimeout = internal.WithTimeout
	// WithTransportCredentials return a func to make the gRPC calls secured with given credentials.
	WithTransportCredentials = internal.WithTransportCredentials
	// WithUnaryClientInterceptor is an alias of internal.WithUnaryClientInterceptor.
	WithUnaryClientInterceptor = internal.WithUnaryClientInterceptor
)
View Source
var Acceptable = codes.Acceptable

Functions

func DontLogClientContentForMethod

func DontLogClientContentForMethod(method string)

DontLogClientContentForMethod disable logging content for given method.

func DontLogContentForMethod

func DontLogContentForMethod(method string)

DontLogContentForMethod disable logging content for given method. Deprecated: use ServerMiddlewaresConf.IgnoreContentMethods instead.

func SetClientSlowThreshold

func SetClientSlowThreshold(threshold time.Duration)

SetClientSlowThreshold sets the slow threshold on client side.

func SetHashKey

func SetHashKey(ctx context.Context, key string) context.Context

SetHashKey sets the hash key into context.

func SetServerSlowThreshold

func SetServerSlowThreshold(threshold time.Duration)

SetServerSlowThreshold sets the slow threshold on server side. Deprecated: use ServerMiddlewaresConf.SlowThreshold instead.

func WithCallTimeout

func WithCallTimeout(timeout time.Duration) grpc.CallOption

WithCallTimeout return a call option with given timeout to make a method call.

func WithRouteTarget added in v0.2.0

func WithRouteTarget(ctx context.Context, instanceID string, mode RouteMode) context.Context

WithRouteTarget routes a call to a stable service instance identity.

Types

type Client

type Client = internal.Client

Client is an alias of internal.Client.

func MustNewClient

func MustNewClient(c RpcClientConf, options ...ClientOption) Client

MustNewClient returns a Client, exits on any error.

func NewClient

func NewClient(c RpcClientConf, options ...ClientOption) (Client, error)

NewClient returns a Client.

func NewClientWithTarget

func NewClientWithTarget(target string, opts ...ClientOption) (Client, error)

NewClientWithTarget returns a Client with connecting to given target.

type ClientMiddlewaresConf

type ClientMiddlewaresConf = internal.ClientMiddlewaresConf

ClientMiddlewaresConf defines whether to use client middlewares.

type ClientOption

type ClientOption = internal.ClientOption

ClientOption is an alias of internal.ClientOption.

type ClientOptions

type ClientOptions = internal.ClientOptions

type MethodTimeoutConf

type MethodTimeoutConf = internal.MethodTimeoutConf

MethodTimeoutConf defines specified timeout for gRPC method.

type RouteMode added in v0.2.0

type RouteMode = route.Mode

RouteMode controls per-call endpoint routing fallback behavior.

type RpcClient

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

A RpcClient is a rpc client.

func (*RpcClient) Close added in v0.3.0

func (rc *RpcClient) Close() error

Close releases the underlying gRPC connection and discovery subscription.

func (*RpcClient) Conn

func (rc *RpcClient) Conn() *grpc.ClientConn

Conn returns the underlying grpc.ClientConn.

type RpcClientConf

type RpcClientConf struct {
	Etcd      discov.EtcdConf `json:",optional,inherit"`
	Endpoints []string        `json:",optional"`
	Target    string          `json:",optional"`
	App       string          `json:",optional"`
	Token     string          `json:",optional"`
	// Balancer is kept for backward compatibility. BalancerName takes effect when Balancer is empty.
	Balancer      string `json:",optional"`
	NonBlock      bool   `json:",optional"`
	Timeout       int64
	KeepaliveTime time.Duration `json:",optional"`
	Middlewares   ClientMiddlewaresConf
	BalancerName  string
}

A RpcClientConf is a rpc client config.

func DefaultRpcClientConf

func DefaultRpcClientConf() RpcClientConf

DefaultRpcClientConf returns Hexas RPC client defaults.

func NewDirectClientConf

func NewDirectClientConf(endpoints []string, app, token string) RpcClientConf

NewDirectClientConf returns a RpcClientConf.

func NewEtcdClientConf

func NewEtcdClientConf(hosts []string, key, app, token string) RpcClientConf

NewEtcdClientConf returns a RpcClientConf.

func (RpcClientConf) BuildTarget

func (cc RpcClientConf) BuildTarget() (string, error)

BuildTarget builds the rpc target from the given config.

func (RpcClientConf) HasCredential

func (cc RpcClientConf) HasCredential() bool

HasCredential checks if there is a credential in config.

type RpcProxy

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

A RpcProxy is a rpc proxy.

func NewProxy

func NewProxy(backend string, opts ...internal.ClientOption) *RpcProxy

NewProxy returns a RpcProxy.

func (*RpcProxy) TakeConn

func (p *RpcProxy) TakeConn(ctx context.Context) (*grpc.ClientConn, error)

TakeConn returns a grpc.ClientConn.

type RpcServer

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

A RpcServer is a rpc server.

func MustNewServer

func MustNewServer(c RpcServerConf, register internal.RegisterFn) *RpcServer

MustNewServer returns a RpcSever, exits on any error.

func NewServer

func NewServer(c RpcServerConf, register internal.RegisterFn) (*RpcServer, error)

NewServer returns a RpcServer.

func (*RpcServer) AddOptions

func (rs *RpcServer) AddOptions(options ...grpc.ServerOption)

AddOptions adds given options.

func (*RpcServer) AddStreamInterceptors

func (rs *RpcServer) AddStreamInterceptors(interceptors ...grpc.StreamServerInterceptor)

AddStreamInterceptors adds given stream interceptors.

func (*RpcServer) AddUnaryInterceptors

func (rs *RpcServer) AddUnaryInterceptors(interceptors ...grpc.UnaryServerInterceptor)

AddUnaryInterceptors adds given unary interceptors.

func (*RpcServer) BeginDrain added in v0.3.0

func (rs *RpcServer) BeginDrain() error

BeginDrain removes the server from ordinary load balancing while keeping explicit instance routes available for in-flight state transfer.

func (*RpcServer) Start

func (rs *RpcServer) Start()

Start starts the RpcServer. Graceful shutdown is enabled by default. Use proc.SetTimeToForceQuit to customize the graceful shutdown period.

func (*RpcServer) Stop

func (rs *RpcServer) Stop()

Stop stops the RpcServer.

type RpcServerConf

type RpcServerConf struct {
	service.ServiceConf
	ListenOn      string
	Etcd          discov.EtcdConf    `json:",optional,inherit"`
	Auth          bool               `json:",optional"`
	Redis         redis.RedisKeyConf `json:",optional"`
	StrictControl bool               `json:",optional"`
	// setting 0 means no timeout
	Timeout      int64
	CpuThreshold int64
	// grpc health check switch
	Health      bool
	Middlewares ServerMiddlewaresConf
	// setting specified timeout for gRPC method
	MethodTimeouts []MethodTimeoutConf `json:",optional"`
}

A RpcServerConf is a rpc server config.

func DefaultRpcServerConf

func DefaultRpcServerConf() RpcServerConf

DefaultRpcServerConf returns Hexas RPC server defaults.

func (RpcServerConf) HasEtcd

func (sc RpcServerConf) HasEtcd() bool

HasEtcd checks if there is etcd settings in config.

func (RpcServerConf) Validate

func (sc RpcServerConf) Validate() error

Validate validates the config.

type ServerMiddlewaresConf

type ServerMiddlewaresConf = internal.ServerMiddlewaresConf

ServerMiddlewaresConf defines whether to use server middlewares.

type StatConf

type StatConf = internal.StatConf

StatConf defines the stat config.

Directories

Path Synopsis
Package route defines per-call RPC endpoint routing directives.
Package route defines per-call RPC endpoint routing directives.

Jump to

Keyboard shortcuts

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