Documentation
¶
Index ¶
- Constants
- Variables
- func AllocRPCResponse() *rpcResponse
- func FrameCtxCancelFunc(id int64) []byte
- func FrameEncode(f Frame, metadata utils.MetaDict[string], payload any, w io.Writer, ...) error
- func FreeRPCResponse(r *rpcResponse)
- func GetMeta(ctx context.Context) utils.MetaDict[string]
- func GetMetadata(data []byte) (utils.MetaDict[string], error)
- func GetPayload(data []byte, unmarshal func([]byte, any) error) (any, error)
- func SetMeta(ctx context.Context, m utils.MetaDict[string]) context.Context
- type CircuitBreaker
- type Client
- func (c *Client) Call(ctx context.Context, serviceMethod string, args, reply any) error
- func (c *Client) CloseStream(s *Stream)
- func (c *Client) NewStream(ctx context.Context, serviceMethod string) (*Stream, error)
- func (c *Client) Subscribe(topic string, handler func([]byte) error) error
- func (c *Client) Unsubscribe(topic string) error
- type Conn
- type Frame
- type Limiter
- type MethodInfo
- type Option
- type Options
- type RPCContext
- type Service
- type Stream
- type TCPServer
- type TCPSession
- type Topic
Constants ¶
View Source
const ( StatusBreakerClosed int32 = iota + 1 StatusBreakerOpen StatusBreakerHalfOpen )
Variables ¶
View Source
var DefaultDeadlineDuration = 10 * time.Second
DefaultDeadlineDuration IO超时
View Source
var DefaultDelayOffDuration = 5 * time.Second
DefaultDelayOffDuration 延迟关闭时间
View Source
var DefaultHeartbeatDuration time.Duration = time.Second * 5
DefaultHeartbeatDuration 心跳包
View Source
var DefaultHeartbeatPeriodDuration time.Duration = (DefaultHeartbeatDuration * 9) / 10
DefaultHeartbeatPeriodDuration 心跳包间距
View Source
var SnowFlakeStartupTime int64 = time.Date(2024, time.January, 1, 0, 0, 0, 0, time.UTC).UnixNano()
SnowFlakeStartupTime
View Source
var TCPBufferSize = 4 * 1024
TCPBufferSize 缓存大小
Functions ¶
func FrameCtxCancelFunc ¶
func FrameEncode ¶
func GetPayload ¶
GetPayload
Types ¶
type CircuitBreaker ¶
type CircuitBreaker struct {
// contains filtered or unexported fields
}
CircuitBreaker 回路 SRE过载保护算法 降低 K 值会使自适应限流算法更加激进(允许客户端在算法启动时拒绝更多本地请求) 增加 K 值会使自适应限流算法不再那么激进(允许服务端在算法启动时尝试接收更多的请求,与上面相反)
func NewCircuitBreaker ¶
func NewCircuitBreaker(request int64, k float64) *CircuitBreaker
NewCircuitBreakcer 新加回路
func (*CircuitBreaker) AllowRequest ¶
func (c *CircuitBreaker) AllowRequest() error
func (*CircuitBreaker) MarkFailed ¶
func (c *CircuitBreaker) MarkFailed()
func (*CircuitBreaker) MarkSuccess ¶
func (c *CircuitBreaker) MarkSuccess()
type Client ¶
Client 连接
func (*Client) CloseStream ¶
type Frame ¶
Frame 帧
type Limiter ¶
type Limiter struct {
utils.TokenBucketLimiter
}
type MethodInfo ¶
type MethodInfo struct {
// contains filtered or unexported fields
}
MethodInfo 方法
type Option ¶
type Option func(*Options)
Option 选项赋值
func WarpSend ¶
func WarpSend(s func(func(context.Context, Frame, any) error) func(context.Context, Frame, any) error) Option
WarpSend 客服端包装发送
func WithCodec ¶
func WithCodec(m func(any) ([]byte, error), e func(any, io.Writer) error, um func([]byte, any) error) Option
WithCodec 编码
func WithProtocolMagicNumber ¶
type Options ¶
type Options struct {
ProtocolMagicNumber uint32
//编码器
Marshal func(any) ([]byte, error)
Encoder func(any, io.Writer) error
//解码器
Unmarshal func([]byte, any) error
//服务端拦截器
WarpHandler func(func([]byte, io.Writer) error) func([]byte, io.Writer) error
//客服端包装发送
WarpSend func(func(context.Context, Frame, any) error) func(context.Context, Frame, any) error
//日志
Logger *slog.Logger
// contains filtered or unexported fields
}
Options 配置
func NewOptions ¶
NewOptions 创建并返回一个配置:接收Option函数类型的不定向参数列表
type Service ¶
type Service struct {
Options
// contains filtered or unexported fields
}
Service 服务端应答
func (*Service) RegisterRPC ¶
RegisterRPC 函数必须是导出的,即首字母为大写 函数阻塞会打断网络io
func (*Service) RegisterTopic ¶
RegisterTopic 注册主题
type TCPServer ¶
type TCPServer struct {
ProtocolMagicNumber uint32
Handler func([]byte, io.Writer) error
Logger *slog.Logger
// contains filtered or unexported fields
}
TCPServer TCP服务
Click to show internal directories.
Click to hide internal directories.