inf

package
v1.0.1 Latest Latest
Warning

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

Go to latest
Published: Jan 21, 2025 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

Package inf @Title title @Description desc @Author yr 2024/11/12 @Update yr 2024/11/12

Package inf @Title title @Description desc @Author yr 2024/11/14 @Update yr 2024/11/14

Package inf @Title title @Description desc @Author yr 2024/11/26 @Update yr 2024/11/26

Package inf @Title 信封接口 @Description desc @Author yr 2024/11/14 @Update yr 2024/11/14

Package inf @Title title @Description desc @Author pc 2024/11/5 @Update pc 2024/11/5

Package inf @Title title @Description desc @Author pc 2024/11/5 @Update pc 2024/11/5

Package inf @Title 调用监控 @Description 用于监控一些具有超时属性的调用 @Author yr 2024/9/4 下午7:49 @Update yr 2024/9/4 下午7:49

Package inf @Title title @Description desc @Author yr 2024/11/26 @Update yr 2024/11/26

Package inf @Title title @Description desc @Author pc 2024/11/5 @Update pc 2024/11/5

Package inf @Title 请填写文件名称(需要改) @Description 请填写文件描述(需要改) @Author yr 2024/7/29 下午4:47 @Update yr 2024/7/29 下午4:47

Package inf @Title 服务选择器 @Description 根据条件选择服务 @Author yr 2024/11/7 @Update yr 2024/11/7

Package inf @Title title @Description desc @Author pc 2024/11/4 @Update pc 2024/11/4

Package inf @Title title @Description desc @Author yr 2025/1/15 @Update yr 2025/1/15

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type EventCallBack

type EventCallBack func(event IEvent)

EventCallBack 事件接受器

type EventType

type EventType int32

type IBus

type IBus interface {
	// Call 同步调用服务
	Call(method string, in, out interface{}) error
	CallWithTimeout(method string, timeout time.Duration, in, out interface{}) error
	// AsyncCall 异步调用服务
	AsyncCall(method string, timeout time.Duration, in interface{}, callbacks ...dto.CompletionFunc) (dto.CancelRpc, error)
	// Send 无返回调用
	Send(method string, in interface{}) error
	// Cast 广播
	Cast(method string, in interface{})
}

type IDataDef

type IDataDef interface {
	IsRef() bool
	Ref()
	UnRef()
}

type IDiscovery

type IDiscovery interface {
	Init(eventProcessor IEventProcessor) error
	Start()
	Close()
}

type IEnvelope

type IEnvelope interface {
	IDataDef

	SetHeaders(header dto.Header)
	SetHeader(key string, value string)
	SetSenderPid(sender *actor.PID)
	SetReceiverPid(receiver *actor.PID)
	SetSender(client IRpcSender)
	SetMethod(method string)
	SetReqId(reqId uint64)
	SetReply()
	SetTimeout(timeout time.Duration)
	SetRequest(req interface{})
	SetResponse(res interface{})
	SetError(err error)
	SetErrStr(err string)
	SetNeedResponse(need bool)
	SetCallback(cbs []dto.CompletionFunc)
	SetTimerId(id uint64)

	GetHeader(key string) string
	GetHeaders() dto.Header
	GetSenderPid() *actor.PID
	GetReceiverPid() *actor.PID
	GetSender() IRpcSender
	GetMethod() string
	GetReqId() uint64
	GetRequest() interface{}
	GetResponse() interface{}
	GetError() error
	GetErrStr() string
	GetTimeout() time.Duration
	GetTimerId() uint64

	NeedCallback() bool // 是否需要回调
	IsReply() bool      // 是否是回复
	NeedResponse() bool // 是否需要回复

	Done()
	RunCompletions()
	Wait()
	ToProtoMsg() *actor.Message
}

type IEvent

type IEvent interface {
	GetType() EventType
}

type IEventChannel

type IEventChannel interface {
	PushEvent(ev IEvent) error
}

type IEventHandler

type IEventHandler interface {
	Init(p IEventProcessor)
	GetEventProcessor() IEventProcessor
	NotifyEvent(IEvent)
	Destroy()
	//注册了事件
	AddRegInfo(eventType EventType, eventProcessor IEventProcessor)
	RemoveRegInfo(eventType EventType, eventProcessor IEventProcessor)
}

type IEventProcessor

type IEventProcessor interface {
	IEventChannel

	Init(eventChannel IEventChannel)
	EventHandler(ev IEvent)
	RegEventReceiverFunc(eventType EventType, receiver IEventHandler, callback EventCallBack)
	UnRegEventReceiverFun(eventType EventType, receiver IEventHandler)

	CastEvent(event IEvent) //广播事件
	AddBindEvent(eventType EventType, receiver IEventHandler, callback EventCallBack)
	AddListen(eventType EventType, receiver IEventHandler)
	RemoveBindEvent(eventType EventType, receiver IEventHandler)
	RemoveListen(eventType EventType, receiver IEventHandler)
}

type IHttpChannel

type IHttpChannel interface {
	PushHttpEvent(e interface{}) error
}

type IIdentifiable

type IIdentifiable interface {
	OnSetup(svc IService)
	SetName(string)
	GetName() string
	SetServiceId(id string)
	GetServiceId() string
	GetPid() *actor.PID
	GetServerId() int32
	IsClosed() bool // 服务是否已经关闭
}

type ILifecycle

type ILifecycle interface {
	Init(src interface{}, serviceInitConf *config.ServiceInitConf, cfg interface{})
	Start() error
	Stop()
	OnInit() error
	OnStart() error
	OnRelease()
}

ILifecycle 服务生命周期

type IModuleHierarchy

type IModuleHierarchy interface {
	AddModule(IModule) (uint32, error) // 添加子模块
	ReleaseAllChildModule()            // 释放所有子模块
	ReleaseModule(moduleId uint32)     // 释放指定模块
	GetModule(uint32) IModule          // 获取指定模块
	GetRoot() IModule                  // 获取根模块
	GetBaseModule() IModule            // 获取基础模块
	GetParent() IModule                // 获取父模块
}

type IModuleIdentity

type IModuleIdentity interface {
	SetModuleID(uint32) bool // 设置模块ID
	GetModuleID() uint32     // 获取模块ID
	GetModuleName() string   // 获取模块名称
	NewModuleID() uint32     // 生成模块ID
}

type IModuleLifecycle

type IModuleLifecycle interface {
	OnInit() error
	OnRelease()
}

type IModuleServiceEvent

type IModuleServiceEvent interface {
	GetService() IService               // 获取服务
	GetEventHandler() IEventHandler     // 获取事件处理器
	GetEventProcessor() IEventProcessor // 获取事件管理器
	NotifyEvent(IEvent)                 // 通知事件
}

type IModuleTimer

type IModuleTimer interface {
	AfterFunc(d time.Duration, cb func(iTimer timer.ITimer)) timer.ITimer
	CronFunc(cronExpr *timer.CronExpr, cb func(timer.ITimer)) timer.ITimer
	NewTicker(d time.Duration, cb func(timer.ITimer)) timer.ITimer
}

type IMonitor

type IMonitor interface {
	Init() IMonitor
	Start()
	Stop()
	Add(call IEnvelope)
	Remove(seq uint64) IEnvelope
	Get(seq uint64) IEnvelope
	GenSeq() uint64
}

type IProfiler

type IProfiler interface {
	OpenProfiler()
	GetProfiler() *profiler.Profiler
}

type IRemoteServer

type IRemoteServer interface {
	Init(IRpcSenderFactory)
	Serve(*config.RPCServer) error
	Close()
}

type IRpcChannel

type IRpcChannel interface {
	PushRequest(req IEnvelope) error
}

type IRpcHandler

type IRpcHandler interface {
	IRpcChannel
	IHttpChannel
	IRpcSelector

	GetName() string
	GetPid() *actor.PID           // 获取服务id
	GetRpcHandler() IRpcHandler   // 获取rpc服务
	HandleRequest(msg IEnvelope)  // 处理请求
	HandleResponse(msg IEnvelope) // 处理回复
	IsPrivate() bool              // 是否私有服务
	IsClosed() bool               // 服务是否已经关闭
}

type IRpcSelector

type IRpcSelector interface {
	Select(serverId int32, serviceId, serviceName string) IBus

	SelectSameServer(serviceId, serviceName string) IBus

	SelectByPid(receiver *actor.PID) IBus

	// SelectByRule 根据自定义规则选择服务
	SelectByRule(rule func(pid *actor.PID) bool) IBus

	// SelectByServiceType 根据服务类型选择服务
	SelectByServiceType(serverId int32, serviceType, serviceName string, filters ...func(pid *actor.PID) bool) IBus

	SelectSameServerByServiceType(serviceType, serviceName string, filters ...func(pid *actor.PID) bool) IBus
}

type IRpcSender

type IRpcSender interface {
	IRpcHandler
	IRpcSenderHandler

	GetPid() *actor.PID
}

type IRpcSenderFactory

type IRpcSenderFactory interface {
	GetSender(pid *actor.PID) IRpcSender
}

type IRpcSenderHandler

type IRpcSenderHandler interface {
	Close()
	// SendRequest 发送请求消息
	SendRequest(envelope IEnvelope) error
	SendRequestAndRelease(envelope IEnvelope) error
	SendResponse(envelope IEnvelope) error
}

type ISelector

type ISelector interface {
	// Select 选择服务
	Select(sender *actor.PID, serverId int32, serviceId, serviceName string) IBus

	// SelectByRule 根据自定义规则选择服务
	SelectByRule(sender *actor.PID, rule func(pid *actor.PID) bool) IBus

	SelectByPid(sender, receiver *actor.PID) IBus

	SelectByServiceType(sender *actor.PID, serverId int32, serviceType, serviceName string) IBus

	SelectByFilterAndChoice(sender *actor.PID, filter func(pid *actor.PID) bool, choice func(pids []*actor.PID) []*actor.PID) IBus
}

type IService

IService 服务接口 每个服务就是一个单独的协程

type IServiceHandler

type IServiceHandler interface {
	SetGoRoutineNum(num int32)
	GetServiceCfg() interface{}
	GetServiceEventChannelNum() int
	GetServiceTimerChannelNum() int
	GetRpcHandler() IRpcHandler
}

type ITimer

type ITimer interface {
	Do()
	GetName() string
	GetTimerId() uint64
}

Jump to

Keyboard shortcuts

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