Documentation
¶
Index ¶
- Constants
- Variables
- func ContinuousRecvPack(conn net.Conn, cstmFunc ProcessInComingPackFunc)
- func DeliverTo(task *protocol.Proto) (*protocol.Proto, error)
- func GetInnerID() int64
- func Netip() string
- func RandPort() string
- func ReadyTask(ctx context.Context, srvMethod string, srvName string, in interface{}) (*protocol.Proto, error)
- func RecvPack(conn net.Conn) ([]byte, error)
- func RegisterAndServe(sd *ServiceDesc, ss interface{}, cfg *config.BaseCfg)
- func SendAll(conn net.Conn, buf []byte) int
- func ShapingTime(begin time.Time, cell time.Duration, ticks int64) time.Time
- func SpanFromTask(task *protocol.Proto) opentracing.Span
- func SpanWithTask(ctx context.Context, task *protocol.Proto) opentracing.Span
- type ConnActor
- type ConnActorType
- type ConsistentHash
- func (chash *ConsistentHash) AddNode(svrAddr string) bool
- func (chash *ConsistentHash) AllNode() []string
- func (chash *ConsistentHash) Clear()
- func (chash *ConsistentHash) Find(key []byte) *Node
- func (chash *ConsistentHash) Leastload() string
- func (chash *ConsistentHash) Locate(key []byte) (string, bool)
- func (chash *ConsistentHash) RmNode(key []byte) string
- type Discover
- func (discover *Discover) Dispatch(URI string) (*ConnActor, error)
- func (discover *Discover) DrectDispatch(URI string) (*ConnActor, error)
- func (discover *Discover) Quit()
- func (discover *Discover) Start(srvName string, cfg *config.BaseCfg, selfURI []string, address string)
- func (discover *Discover) StartZipkinTrace(endPoint, srvHost, srvName string) error
- type Dispatcher
- type Holder
- type MethodDesc
- type Node
- type ProcessInComingPackFunc
- type ServiceDesc
- type SignalFunc
- type SignalHandler
- type SrvVersion
- type TopoChange
Constants ¶
const ( CA_OK = iota // 0:连接正常 CA_BROKEN = iota // 1:连接已断开 CA_RECONNING = iota // 2:正在重连 CA_ABANDON = iota // 3:重连失败放弃connactor对象 )
const EachReadBufSize = 1024 * 2048
EachReadBufSize buf大小
const (
Normalformat = "2006-01-02 15:04:05"
)
定义格式化时间格式
Variables ¶
var ( ErrBlocking = errors.New("operation blocking") ErrClosed = errors.New("connection is closed") ErrTimeout = errors.New("netio timeout") ErrMethodNotFound = errors.New("method not found") )
定义错误类型
var SrvVersionName = map[SrvVersion]string{ SV1: "v1", SV2: "v2", }
SrvVersionName 定义服务版本映射
Functions ¶
func ContinuousRecvPack ¶
func ContinuousRecvPack(conn net.Conn, cstmFunc ProcessInComingPackFunc)
ContinuousRecvPack 用于从长连接中持续读取数据 全双工的方式读取数据
func ReadyTask ¶
func ReadyTask(ctx context.Context, srvMethod string, srvName string, in interface{}) (*protocol.Proto, error)
ReadyTask 准备请求的任务
func RegisterAndServe ¶
func RegisterAndServe(sd *ServiceDesc, ss interface{}, cfg *config.BaseCfg)
RegisterAndServe 后端服务注册并开启
func ShapingTime ¶
ShapingTime 把超时时间整形,得到的超时时间显现有规律的间隔; 参数: cell time.Duration 超时的时间粒度 ticks int64 超时的时间滴答数。
func SpanFromTask ¶
SpanFromTask 从Task中加工出Span
Types ¶
type ConnActor ¶
type ConnActor struct {
// contains filtered or unexported fields
}
ConnActor 连接对象
func NewActiveConnActor ¶
NewActiveConnActor 生成一个主动的连接,主动向对端发送请求并等待响应的连接
func NewPassiveConnActor ¶
NewPassiveConnActor Iceberg下层服务需建立此种连接,用于接收并处理数据
func (*ConnActor) RequestAndReponse ¶
RequestAndReponse 向特定的服务发送请求,并等待响应
type ConsistentHash ¶
type ConsistentHash struct {
// contains filtered or unexported fields
}
ConsistentHash 一致性哈希类
该类维护哈希环并提供hash接口 我们限制hash的值空间在uint32的表示范围内
func NewConsistentHash ¶
func NewConsistentHash() *ConsistentHash
NewConsistentHash 创建并初始化一个新的一致性哈希实例
func (*ConsistentHash) AddNode ¶
func (chash *ConsistentHash) AddNode(svrAddr string) bool
AddNode 增加一个节点
key 要增加的节点key svrAddr 新节点的监听地址 realNodeKey 如果长度不为0说明要增加的是一个虚拟节点。realNodeKey里保存就是虚拟节点对应的真实节点的key
func (*ConsistentHash) Leastload ¶
func (chash *ConsistentHash) Leastload() string
Leastload 返回服务实例中负载最小的节点
func (*ConsistentHash) Locate ¶
func (chash *ConsistentHash) Locate(key []byte) (string, bool)
Locate 根据hash key返回对应的后台服务的地址
func (*ConsistentHash) RmNode ¶
func (chash *ConsistentHash) RmNode(key []byte) string
RmNode 删除一个节点,如果该节点有虚拟节点将一并清除 返回值 string 被删除的节点的远端地址
type Discover ¶
type Discover struct {
// contains filtered or unexported fields
}
Discover 服务发现的类结构 topology 拓扑表的根节点; topoLocker 保护拓扑表的锁; kapi 连接到etcd的客户端会话handle; selfURI 当前进程自己在服务树中的位置; name 服务名称; localListenAddr 本地监听的地址;
func (*Discover) DrectDispatch ¶
DrectDispatch 负载均衡的进行分发消息 分发的时候会进行负载均衡的处理 URI 请求的接口路径 匹配节点时会进行完全匹配
func (*Discover) Start ¶
func (discover *Discover) Start(srvName string, cfg *config.BaseCfg, selfURI []string, address string)
Start 开启服务发现机制
func (*Discover) StartZipkinTrace ¶
StartZipkinTrace 启动zipkin
type Dispatcher ¶
type Dispatcher struct {
// contains filtered or unexported fields
}
Dispatcher 请求分发
func (*Dispatcher) Incoming ¶
func (dispatcher *Dispatcher) Incoming(b []byte, ca *ConnActor)
Incoming 回调
type Holder ¶
type Holder struct {
// contains filtered or unexported fields
}
Holder holder that hold all request
type MethodDesc ¶
type MethodDesc struct { MethodName string Handler methodHandler }
MethodDesc represents an RPC service's method specification.
type Node ¶
type Node struct {
// contains filtered or unexported fields
}
Node 实例节点 @remoteAddr 节点监听地址 @reqNo 节点当前负载状况
type ProcessInComingPackFunc ¶
type ProcessInComingPackFunc func([]byte)
ProcessInComingPackFunc 处理网络中接收到的请求的回调函数定义
type ServiceDesc ¶
type ServiceDesc struct { Version string ServiceName string // The pointer to the service interface. Used to check whether the user // provided implementation satisfies the interface requirements. HandlerType interface{} Methods []MethodDesc Metadata interface{} ServiceURI []string }
ServiceDesc 服务描述
type SignalHandler ¶
type SignalHandler struct {
// contains filtered or unexported fields
}
SignalHandler 信号处理类,管理程序要处理的信号
func (*SignalHandler) Register ¶
func (shr *SignalHandler) Register(s os.Signal, f SignalFunc)
Register 注册感兴趣的信号及该信号的回调函数
func (*SignalHandler) UnRegister ¶
func (shr *SignalHandler) UnRegister(s os.Signal, f SignalFunc)
UnRegister 解除已注册的信号及回调函数
type SrvVersion ¶
type SrvVersion int8
SrvVersion 服务版本
const ( SV1 SrvVersion = 1 SV2 SrvVersion = 2 )
定义服务版本
Source Files
¶
Directories
¶
Path | Synopsis |
---|---|
protoc-gen-go
|
|
descriptor
Package descriptor is a generated protocol buffer package.
|
Package descriptor is a generated protocol buffer package. |
generator
The code generator for the plugin for the Google protocol buffer compiler.
|
The code generator for the plugin for the Google protocol buffer compiler. |
grpc
Package grpc outputs gRPC service descriptions in Go code.
|
Package grpc outputs gRPC service descriptions in Go code. |
irpc
Package irpc outputs iRPC service descriptions in Go code.
|
Package irpc outputs iRPC service descriptions in Go code. |
plugin
Package plugin_go is a generated protocol buffer package.
|
Package plugin_go is a generated protocol buffer package. |
Package protocol is a generated protocol buffer package.
|
Package protocol is a generated protocol buffer package. |