mesh

package
v2.6.0 Latest Latest
Warning

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

Go to latest
Published: Sep 29, 2026 License: MIT Imports: 22 Imported by: 4

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type HookHandler added in v2.1.0

type HookHandler func(proxy *Proxy)

HookHandler 微服务钩子处理函数

type Mesh

type Mesh struct {
	component.Base
	// contains filtered or unexported fields
}

Mesh 微服务服务器

func NewMesh

func NewMesh(opts ...Option) *Mesh

NewMesh 创建微服务服务器 创建后会初始化代理与内部组件,并处于关闭状态 @param opts ...Option 微服务配置项 @return @1 *Mesh 微服务服务器实例

func (*Mesh) Close added in v2.2.4

func (m *Mesh) Close()

Close 关闭微服务 将状态置为挂起,刷新服务实例状态到注册中心

func (*Mesh) Destroy

func (m *Mesh) Destroy()

Destroy 销毁微服务服务器 将状态置为关闭,解注册服务实例、停止传输服务器并释放内部组件资源

func (*Mesh) Init

func (m *Mesh) Init()

Init 初始化微服务 校验编解码器、注册器与传输器等必要配置,缺失时直接终止进程

func (*Mesh) Name

func (m *Mesh) Name() string

Name 组件名称 @return @1 string 组件名称

func (*Mesh) Proxy

func (m *Mesh) Proxy() *Proxy

Proxy 获取微服务代理 @return @1 *Proxy 微服务代理

func (*Mesh) Start

func (m *Mesh) Start()

Start 启动微服务 将状态置为工作中,随后启动传输服务器、注册服务实例并开启监听

type Option

type Option func(o *options)

Option 微服务配置函数

func WithCodec

func WithCodec(codec encoding.Codec) Option

WithCodec 设置编解码器 @param codec encoding.Codec 编解码器 @return @1 Option 微服务配置项

func WithContext

func WithContext(ctx context.Context) Option

WithContext 设置启动上下文 @param ctx context.Context 启动上下文 @return @1 Option 微服务配置项

func WithEncryptor

func WithEncryptor(encryptor crypto.Encryptor) Option

WithEncryptor 设置消息加密器 @param encryptor crypto.Encryptor 消息加密器 @return @1 Option 微服务配置项

func WithID added in v2.5.4

func WithID(id string) Option

WithID 设置实例ID @param id string 实例ID @return @1 Option 微服务配置项

func WithLinkerCallTimeout added in v2.6.0

func WithLinkerCallTimeout(callTimeout time.Duration) Option

WithLinkerCallTimeout 设置RPC调用超时时间 @param callTimeout time.Duration 内部RPC调用超时时间 @return @1 Option 微服务配置项

func WithLinkerCommandQueueSize added in v2.6.0

func WithLinkerCommandQueueSize(commandQueueSize int32) Option

WithLinkerCommandQueueSize 设置消息队列大小 @param commandQueueSize int32 消息队列大小 @return @1 Option 微服务配置项

func WithLinkerCommandWriteTimeout added in v2.6.0

func WithLinkerCommandWriteTimeout(commandWriteTimeout time.Duration) Option

WithLinkerCommandWriteTimeout 设置写入超时时间 @param commandWriteTimeout time.Duration 消息写入超时时间 @return @1 Option 微服务配置项

func WithLinkerConnNum added in v2.6.0

func WithLinkerConnNum(connNum int) Option

WithLinkerConnNum 设置连接数 @param connNum int 内部RPC拨号连接数 @return @1 Option 微服务配置项

func WithLinkerDialRetryTimes added in v2.6.0

func WithLinkerDialRetryTimes(dialRetryTimes int) Option

WithLinkerDialRetryTimes 设置内部RPC拨号重试次数 @param dialRetryTimes int 内部RPC拨号重试次数 @return @1 Option 微服务配置项

func WithLinkerDialTimeout added in v2.6.0

func WithLinkerDialTimeout(dialTimeout time.Duration) Option

WithLinkerDialTimeout 设置内部RPC拨号超时时间 @param dialTimeout time.Duration 内部RPC拨号超时时间 @return @1 Option 微服务配置项

func WithLinkerFaultRecoveryTime added in v2.6.0

func WithLinkerFaultRecoveryTime(faultRecoveryTime time.Duration) Option

WithLinkerFaultRecoveryTime 设置内部RPC故障恢复时间 @param faultRecoveryTime time.Duration 内部RPC故障恢复时间 @return @1 Option 微服务配置项

func WithLocator

func WithLocator(locator locate.Locator) Option

WithLocator 设置定位器 @param locator locate.Locator 用户定位器 @return @1 Option 微服务配置项

func WithMetadata added in v2.3.0

func WithMetadata(metadata map[string]string) Option

WithMetadata 设置元数据 @param metadata map[string]string 元数据 @return @1 Option 微服务配置项

func WithName

func WithName(name string) Option

WithName 设置实例名称 @param name string 实例名称 @return @1 Option 微服务配置项

func WithRegistry

func WithRegistry(r registry.Registry) Option

WithRegistry 设置服务注册器 @param r registry.Registry 服务注册器 @return @1 Option 微服务配置项

func WithTransporter

func WithTransporter(transporter transport.Transporter) Option

WithTransporter 设置消息传输器 @param transporter transport.Transporter 消息传输器 @return @1 Option 微服务配置项

func WithWeight added in v2.2.4

func WithWeight(weight int) Option

WithWeight 设置权重 @param weight int 服务器权重 @return @1 Option 微服务配置项

type Proxy

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

Proxy 代理 提供微服务服务器对外可见的完整功能API,包括网关/节点链接与消息推送等

func (*Proxy) AddHookListener added in v2.1.0

func (p *Proxy) AddHookListener(hook cluster.Hook, handler HookHandler)

AddHookListener 添加钩子监听器 @param hook cluster.Hook 钩子类型 @param handler HookHandler 钩子处理函数

func (*Proxy) AddServiceProvider

func (p *Proxy) AddServiceProvider(name string, desc, provider any)

AddServiceProvider 添加服务提供者 @param name string 服务名称 @param desc any 服务描述对象 @param provider any 服务提供者

func (*Proxy) AskGate added in v2.1.0

func (p *Proxy) AskGate(ctx context.Context, gid string, uid int64) (string, bool, error)

AskGate 检测用户是否在给定的网关上 @param ctx context.Context 上下文 @param gid string 网关ID @param uid int64 用户ID @return @1 string 用户实际所在的网关ID @return @2 bool 用户是否在给定的网关上 @return @3 error 微服务关闭时返回的错误

func (*Proxy) AskNode added in v2.1.0

func (p *Proxy) AskNode(ctx context.Context, uid int64, name, nid string) (string, bool, error)

AskNode 检测用户是否在给定的节点上 @param ctx context.Context 上下文 @param uid int64 用户ID @param name string 节点名称 @param nid string 节点ID @return @1 string 用户实际所在的节点ID @return @2 bool 用户是否在给定的节点上 @return @3 error 微服务关闭时返回的错误

func (*Proxy) BindGate

func (p *Proxy) BindGate(ctx context.Context, gid string, cid, uid int64) error

BindGate 绑定网关 @param ctx context.Context 上下文 @param gid string 网关ID @param cid int64 连接ID @param uid int64 用户ID,绑定后用户与该连接关联 @return @1 error 微服务关闭或绑定失败时返回的错误

func (*Proxy) BindNode

func (p *Proxy) BindNode(ctx context.Context, uid int64, name, nid string) error

BindNode 绑定节点 单个用户可以绑定到多个节点服务器上,相同名称的节点服务器只能绑定一个,多次绑定会到相同名称的节点服务器会覆盖之前的绑定。 绑定操作会通过发布订阅方式同步到网关服务器和其他相关节点服务器上。 @param ctx context.Context 上下文 @param uid int64 用户ID @param name string 节点名称 @param nid string 节点ID @return @1 error 微服务关闭或绑定失败时返回的错误

func (*Proxy) Broadcast

func (p *Proxy) Broadcast(ctx context.Context, args *cluster.BroadcastArgs) (int64, error)

Broadcast 推送广播消息 要想获得推送成功的目标数,需将args.Ack设为true @param ctx context.Context 上下文 @param args *cluster.BroadcastArgs 广播参数 @return @1 int64 广播成功的目标数 @return @2 error 微服务关闭或推送失败时返回的错误

func (*Proxy) Deliver added in v2.1.0

func (p *Proxy) Deliver(ctx context.Context, args *cluster.DeliverArgs) error

Deliver 投递消息给节点处理 @param ctx context.Context 上下文 @param args *cluster.DeliverArgs 投递参数 @return @1 error 微服务关闭或投递失败时返回的错误

func (*Proxy) Disconnect

func (p *Proxy) Disconnect(ctx context.Context, args *cluster.DisconnectArgs) error

Disconnect 断开连接 @param ctx context.Context 上下文 @param args *cluster.DisconnectArgs 断开参数 @return @1 error 微服务关闭或断开失败时返回的错误

func (*Proxy) FetchGateList

func (p *Proxy) FetchGateList(ctx context.Context, states ...cluster.State) ([]*registry.ServiceInstance, error)

FetchGateList 拉取网关列表 @param ctx context.Context 上下文 @param states ...cluster.State 状态过滤条件 @return @1 []*registry.ServiceInstance 网关服务实例列表 @return @2 error 微服务关闭时返回的错误

func (*Proxy) FetchNodeList

func (p *Proxy) FetchNodeList(ctx context.Context, states ...cluster.State) ([]*registry.ServiceInstance, error)

FetchNodeList 拉取节点列表 @param ctx context.Context 上下文 @param states ...cluster.State 状态过滤条件 @return @1 []*registry.ServiceInstance 节点服务实例列表 @return @2 error 微服务关闭时返回的错误

func (*Proxy) GetID added in v2.1.0

func (p *Proxy) GetID() string

GetID 获取当前实例ID @return @1 string 当前实例ID

func (*Proxy) GetIP

func (p *Proxy) GetIP(ctx context.Context, args *cluster.GetIPArgs) (string, error)

GetIP 获取客户端IP @param ctx context.Context 上下文 @param args *cluster.GetIPArgs 查询参数 @return @1 string 客户端IP @return @2 error 微服务关闭或查询失败时返回的错误

func (*Proxy) GetName added in v2.1.0

func (p *Proxy) GetName() string

GetName 获取当前实例名称 @return @1 string 当前实例名称

func (*Proxy) GetState added in v2.6.0

func (p *Proxy) GetState() cluster.State

GetState 获取当前微服务状态 @return @1 cluster.State 当前微服务状态

func (*Proxy) HasGate added in v2.5.0

func (p *Proxy) HasGate(gid string) (bool, error)

HasGate 检测是否存在某个网关 @param gid string 网关ID @return @1 bool 网关是否存在 @return @2 error 微服务关闭时返回的错误

func (*Proxy) HasNode added in v2.5.0

func (p *Proxy) HasNode(nid string) (bool, error)

HasNode 检测是否存在某个节点 @param nid string 节点ID @return @1 bool 节点是否存在 @return @2 error 微服务关闭时返回的错误

func (*Proxy) IsOnline added in v2.1.0

func (p *Proxy) IsOnline(ctx context.Context, args *cluster.IsOnlineArgs) (bool, error)

IsOnline 检测是否在线 @param ctx context.Context 上下文 @param args *cluster.IsOnlineArgs 查询参数 @return @1 bool 是否在线 @return @2 error 微服务关闭或查询失败时返回的错误

func (*Proxy) LocateGate

func (p *Proxy) LocateGate(ctx context.Context, uid int64) (string, error)

LocateGate 定位用户所在网关 @param ctx context.Context 上下文 @param uid int64 用户ID @return @1 string 用户所在的网关ID @return @2 error 微服务关闭时返回的错误

func (*Proxy) LocateNode

func (p *Proxy) LocateNode(ctx context.Context, uid int64, name string) (string, error)

LocateNode 定位用户所在节点 @param ctx context.Context 上下文 @param uid int64 用户ID @param name string 节点名称 @return @1 string 用户所在的节点ID @return @2 error 微服务关闭时返回的错误

func (*Proxy) LocateNodes added in v2.5.0

func (p *Proxy) LocateNodes(ctx context.Context, uid int64) (map[string]string, error)

LocateNodes 定位用户所在节点列表 @param ctx context.Context 上下文 @param uid int64 用户ID @return @1 map[string]string 用户绑定的节点名称到节点ID的映射 @return @2 error 微服务关闭时返回的错误

func (*Proxy) Multicast

func (p *Proxy) Multicast(ctx context.Context, args *cluster.MulticastArgs) (int64, error)

Multicast 推送组播消息 要想获得推送成功的目标数,需将args.Ack设为true @param ctx context.Context 上下文 @param args *cluster.MulticastArgs 组播参数 @return @1 int64 组播成功的目标数 @return @2 error 微服务关闭或推送失败时返回的错误

func (*Proxy) NewMeshClient added in v2.1.0

func (p *Proxy) NewMeshClient(target string) (transport.Client, error)

NewMeshClient 新建微服务客户端 target参数可分为三种模式: 服务直连模式: direct://127.0.0.1:8011 服务直连模式: direct://711baf8d-8a06-11ef-b7df-f4f19e1f0070 服务发现模式: discovery://service_name @param target string 微服务目标地址 @return @1 transport.Client 微服务客户端 @return @2 error 微服务关闭时返回的错误

func (*Proxy) PackBuffer added in v2.2.0

func (p *Proxy) PackBuffer(message any) ([]byte, error)

PackBuffer 打包Buffer @param message any 待打包的消息内容 @return @1 []byte 打包后的消息字节 @return @2 error 打包失败时返回的错误

func (*Proxy) PackMessage added in v2.2.0

func (p *Proxy) PackMessage(message *cluster.Message) ([]byte, error)

PackMessage 打包消息 @param message *cluster.Message 待打包的消息 @return @1 []byte 打包后的消息字节 @return @2 error 打包失败时返回的错误

func (*Proxy) Publish added in v2.3.0

func (p *Proxy) Publish(ctx context.Context, args *cluster.PublishArgs) (int64, error)

Publish 发布消息 要想获得推送成功的目标数,需将args.Ack设为true @param ctx context.Context 上下文 @param args *cluster.PublishArgs 发布参数 @return @1 int64 发布成功的目标数 @return @2 error 微服务关闭或发布失败时返回的错误

func (*Proxy) Push

func (p *Proxy) Push(ctx context.Context, args *cluster.PushArgs) error

Push 推送消息 args.Ack设为true时可获得消息真实发送的情况 @param ctx context.Context 上下文 @param args *cluster.PushArgs 推送参数 @return @1 error 微服务关闭或推送失败时返回的错误

func (*Proxy) SetState added in v2.6.0

func (p *Proxy) SetState(state cluster.State) error

SetState 设置当前微服务状态 @param state cluster.State 目标状态 @return @1 error 状态设置失败时返回的错误

func (*Proxy) Stat

func (p *Proxy) Stat(ctx context.Context, kind session.Kind) (int64, error)

Stat 统计会话总数 @param ctx context.Context 上下文 @param kind session.Kind 会话类型 @return @1 int64 会话总数 @return @2 error 微服务关闭时返回的错误

func (*Proxy) Subscribe added in v2.3.0

func (p *Proxy) Subscribe(ctx context.Context, args *cluster.SubscribeArgs) error

Subscribe 订阅频道 @param ctx context.Context 上下文 @param args *cluster.SubscribeArgs 订阅参数 @return @1 error 微服务关闭或订阅失败时返回的错误

func (*Proxy) UnbindGate

func (p *Proxy) UnbindGate(ctx context.Context, uid int64) error

UnbindGate 解绑网关 @param ctx context.Context 上下文 @param uid int64 用户ID @return @1 error 微服务关闭或解绑失败时返回的错误

func (*Proxy) UnbindNode

func (p *Proxy) UnbindNode(ctx context.Context, uid int64, name, nid string) error

UnbindNode 解绑节点 解绑时会对对应名称的节点服务器进行解绑,解绑时会对解绑节点ID进行校验,不匹配则解绑失败。 解绑操作会通过发布订阅方式同步到网关服务器和其他相关节点服务器上。 @param ctx context.Context 上下文 @param uid int64 用户ID @param name string 节点名称 @param nid string 节点ID @return @1 error 微服务关闭或解绑失败时返回的错误

func (*Proxy) Unsubscribe added in v2.3.0

func (p *Proxy) Unsubscribe(ctx context.Context, args *cluster.UnsubscribeArgs) error

Unsubscribe 取消订阅频道 @param ctx context.Context 上下文 @param args *cluster.UnsubscribeArgs 取消订阅参数 @return @1 error 微服务关闭或取消订阅失败时返回的错误

Jump to

Keyboard shortcuts

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