internal

package
v1.14.3 Latest Latest
Warning

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

Go to latest
Published: Jan 15, 2026 License: BSD-3-Clause Imports: 36 Imported by: 0

Documentation

Overview

内部包,实现客户端模式功能

内部包,提供共享功能

内部包,实现主控模式功能

内部包,实现服务端模式功能

Index

Constants

This section is empty.

Variables

View Source
var (
	ReloadInterval = getEnvAsDuration("NP_RELOAD_INTERVAL", 1*time.Hour) // 重载间隔
)

配置变量,可通过环境变量调整

Functions

This section is empty.

Types

type Client

type Client struct{ Common }

Client 实现客户端模式功能

func NewClient

func NewClient(parsedURL *url.URL, logger *logs.Logger) (*Client, error)

NewClient 创建新的客户端实例

func (*Client) Run

func (c *Client) Run()

Run 管理客户端生命周期

type Common

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

Common 包含所有模式共享的核心功能

type Instance

type Instance struct {
	ID         string `json:"id"`        // 实例ID
	Alias      string `json:"alias"`     // 实例别名
	Type       string `json:"type"`      // 实例类型
	Status     string `json:"status"`    // 实例状态
	URL        string `json:"url"`       // 实例URL
	Config     string `json:"config"`    // 实例配置
	Restart    bool   `json:"restart"`   // 是否自启动
	Meta       Meta   `json:"meta"`      // 元数据信息
	Mode       int32  `json:"mode"`      // 实例模式
	Ping       int32  `json:"ping"`      // 端内延迟
	Pool       int32  `json:"pool"`      // 池连接数
	TCPS       int32  `json:"tcps"`      // TCP连接数
	UDPS       int32  `json:"udps"`      // UDP连接数
	TCPRX      uint64 `json:"tcprx"`     // TCP接收字节数
	TCPTX      uint64 `json:"tcptx"`     // TCP发送字节数
	UDPRX      uint64 `json:"udprx"`     // UDP接收字节数
	UDPTX      uint64 `json:"udptx"`     // UDP发送字节数
	TCPRXBase  uint64 `json:"-" gob:"-"` // TCP接收字节数基线(不序列化)
	TCPTXBase  uint64 `json:"-" gob:"-"` // TCP发送字节数基线(不序列化)
	UDPRXBase  uint64 `json:"-" gob:"-"` // UDP接收字节数基线(不序列化)
	UDPTXBase  uint64 `json:"-" gob:"-"` // UDP发送字节数基线(不序列化)
	TCPRXReset uint64 `json:"-" gob:"-"` // TCP接收重置偏移量(不序列化)
	TCPTXReset uint64 `json:"-" gob:"-"` // TCP发送重置偏移量(不序列化)
	UDPRXReset uint64 `json:"-" gob:"-"` // UDP接收重置偏移量(不序列化)
	UDPTXReset uint64 `json:"-" gob:"-"` // UDP发送重置偏移量(不序列化)
	// contains filtered or unexported fields
}

Instance 实例信息

type InstanceEvent

type InstanceEvent struct {
	Type     string    `json:"type"`     // 事件类型:initial, create, update, delete, shutdown, log
	Time     time.Time `json:"time"`     // 事件时间
	Instance *Instance `json:"instance"` // 关联的实例
	Logs     string    `json:"logs"`     // 日志内容
}

InstanceEvent 实例事件信息

type InstanceLogWriter

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

InstanceLogWriter 实例日志写入器

func NewInstanceLogWriter

func NewInstanceLogWriter(instanceID string, instance *Instance, target io.Writer, master *Master) *InstanceLogWriter

NewInstanceLogWriter 创建新的实例日志写入器

func (*InstanceLogWriter) Write

func (w *InstanceLogWriter) Write(p []byte) (n int, err error)

Write 实现io.Writer接口,处理日志输出并解析统计信息

type Master

type Master struct {
	Common // 继承通用功能
	// contains filtered or unexported fields
}

Master 实现主控模式功能

func NewMaster

func NewMaster(parsedURL *url.URL, tlsCode string, tlsConfig *tls.Config, logger *logs.Logger, version string) (*Master, error)

NewMaster 创建新的主控实例

func (*Master) Run

func (m *Master) Run()

Run 管理主控生命周期

func (*Master) Shutdown

func (m *Master) Shutdown(ctx context.Context) error

Shutdown 关闭主控

type Meta

type Meta struct {
	Peer Peer              `json:"peer"` // 对端信息
	Tags map[string]string `json:"tags"` // 标签映射
}

Meta 元数据信息

type Peer

type Peer struct {
	SID   string `json:"sid"`   // 服务ID
	Type  string `json:"type"`  // 服务类型
	Alias string `json:"alias"` // 服务别名
}

Peer 对端信息

type Server

type Server struct{ Common }

Server 实现服务端模式功能

func NewServer

func NewServer(parsedURL *url.URL, tlsCode string, tlsConfig *tls.Config, logger *logs.Logger) (*Server, error)

NewServer 创建新的服务端实例

func (*Server) Run

func (s *Server) Run()

Run 管理服务端生命周期

type Signal

type Signal struct {
	ActionType  string `json:"action"`           // 操作类型
	RemoteAddr  string `json:"remote,omitempty"` // 远程地址
	PoolConnID  string `json:"id,omitempty"`     // 池连接ID
	Fingerprint string `json:"fp,omitempty"`     // TLS指纹
}

Signal 操作信号结构体

type SystemInfo

type SystemInfo struct {
	CPU       int    `json:"cpu"`        // CPU使用率 (%)
	MemTotal  uint64 `json:"mem_total"`  // 内存容量字节数
	MemUsed   uint64 `json:"mem_used"`   // 内存已用字节数
	SwapTotal uint64 `json:"swap_total"` // 交换区容量字节数
	SwapUsed  uint64 `json:"swap_used"`  // 交换区已用字节数
	NetRX     uint64 `json:"netrx"`      // 网络接收字节数
	NetTX     uint64 `json:"nettx"`      // 网络发送字节数
	DiskR     uint64 `json:"diskr"`      // 磁盘读取字节数
	DiskW     uint64 `json:"diskw"`      // 磁盘写入字节数
	SysUp     uint64 `json:"sysup"`      // 系统运行时间(秒)
}

SystemInfo 系统信息结构体

type TCPingResult

type TCPingResult struct {
	Target    string  `json:"target"`
	Connected bool    `json:"connected"`
	Latency   int64   `json:"latency"`
	Error     *string `json:"error"`
}

TCPingResult TCPing结果结构体

type TransportPool

type TransportPool interface {
	IncomingGet(timeout time.Duration) (string, net.Conn, error)
	OutgoingGet(id string, timeout time.Duration) (net.Conn, error)
	Flush()
	Close()
	Ready() bool
	Active() int
	Capacity() int
	Interval() time.Duration
	AddError()
	ErrorCount() int
	ResetError()
}

TransportPool 统一连接池接口

Jump to

Keyboard shortcuts

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