57 lines
1.1 KiB
Go
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)
|
|
}
|