Documentation ¶
Index ¶
- Variables
- func ResolveAddr(network, address string) (net.Addr, error)
- type Conn
- type ConnPool
- func (T *ConnPool) Add(conn net.Conn) error
- func (cp *ConnPool) Close() error
- func (T *ConnPool) CloseIdleConnections()
- func (T *ConnPool) ConnNum() int
- func (T *ConnPool) ConnNumIde(network, address string) int
- func (T *ConnPool) Dial(network, address string) (net.Conn, error)
- func (T *ConnPool) DialContext(ctx context.Context, network, address string) (net.Conn, error)
- func (T *ConnPool) Get(addr net.Addr) (conn net.Conn, err error)
- func (T *ConnPool) Put(conn net.Conn, addr net.Addr) error
- type Dialer
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrConnPoolMax = errors.New("vconnpool: the number of connections in the connection pool has reached the maximum limit") ErrConnNotAvailable = errors.New("vconnpool: no connections available in the pool") ErrPoolFull = errors.New("vconnpool: the number of idle connections has reached the maximum") )
View Source
var PriorityContextKey = &contextKey{"priority"}
Functions ¶
Types ¶
type Conn ¶
type Conn interface { net.Conn // 连接 Discard() error // 废弃(这条连接不再回收) IsReuseConn() bool // 判断这条连接是否是从池中读取出来的 RawConn() net.Conn // 原始连接,这个连接使用 Close 关闭后,不会回收 RawConnFull([]byte) (net.Conn, int) // 原始连接,这个连接使用 Close 关闭后,不会回收 }
Conn 连接接口,包含了 net.Conn
type ConnPool ¶
type ConnPool struct { Dialer // 拨号 ResolveAddr func(network, address string) (net.Addr, error) // 拨号地址变更 IdeConn int // 空闲连接数,0为不支持连接入池 IdeTimeout time.Duration // 空闲自动超时,0为不超时 MaxConn int // 最大连接数,0为无限制连接 // contains filtered or unexported fields }
ConnPool 连接池
func (*ConnPool) Add ¶
Add 增加一个连接到池中,适用于 Dial 的连接。默认使用 RemoteAddr 作为 key 存放在池中。 如果你的需求特殊的,请使用 Put 方法。
conn net.Conn 连接 error 错误
func (*ConnPool) CloseIdleConnections ¶
func (T *ConnPool) CloseIdleConnections()
CloseIdleConnections 关闭空闲连接池
func (*ConnPool) ConnNumIde ¶
ConnNumIde 当前空闲连接数量。这不是实时的空闲连接数量。 入池后读取,得到真实数量。出池后读取,得到的不真实数量,因为存在多线程处理。
int 数量
func (*ConnPool) Dial ¶
Dial 见 DialContext
network string 连接类型 address string 连接地址 net.Conn 连接 error 错误
func (*ConnPool) DialContext ¶
DialContext 拨号,如果ctx 携带键值是(priority=true),是创建新连接,否则从池中读取。 注意:远程地址支持 host 或 ip,一个 host 会有多个 ip 地址,所以无法用 host 的 ip 做为存储地址。 DialContext 支持 hsot 和 ip 读取或创建连接。 而.Get 仅支持 ip 读取池中连接。 DialContext 创建的连接,调用 Close 关闭后,自动收回。
ctx context.Context 上下文 network string 连接类型 address string 连接地址 net.Conn 连接 error 错误
Click to show internal directories.
Click to hide internal directories.