balance/abstract.go
2021-04-01 15:33:21 +08:00

57 lines
1.1 KiB
Go

// Package balance ...
//
// Description : 接口定义
//
// Author : go_developer@163.com<张德满>
//
// Date : 2021-04-01 2:43 下午
package balance
import (
"github.com/go-developer/gopkg/easylock"
)
// SeverNode 服务器节点的数据结构
//
// Author : go_developer@163.com<张德满>
//
// Date : 2:46 下午 2021/4/1
type SeverNode struct {
Host string `json:"host"`
Port int `json:"port"`
Weight float64 `json:"weight"`
Status int `json:"status"`
}
// Server server 的具体配置
//
// Author : go_developer@163.com<张德满>
//
// Date : 2:59 下午 2021/4/1
type Server struct {
lock easylock.EasyLock
NodeList []*SeverNode
}
// Add 添加一个Server
//
// Author : go_developer@163.com<张德满>
//
// Date : 3:00 下午 2021/4/1
func (s *Server) Add(node *SeverNode) {
s.lock.Lock("")
defer s.lock.Unlock("")
s.NodeList = append(s.NodeList, node)
}
// IBalance 负载均衡的接口定义
//
// Author : go_developer@163.com<张德满>
//
// Date : 2:44 下午 2021/4/1
type IBalance interface {
Get() string
Add(node string)
Remove(node string)
}