增加加权负载轮询的实现

This commit is contained in:
2021-11-22 19:12:49 +08:00
parent 39e3cdef91
commit fa426ae90c
4 changed files with 124 additions and 13 deletions

View File

@ -65,22 +65,18 @@ func (b *base) RUnlock() {
// Author : go_developer@163.com<白茶清欢>
//
// Date : 10:07 下午 2021/10/20
func (b *base) AddServerNode(hostIP string, port int) error {
if len(hostIP) == 0 || port <= 0 {
func (b *base) AddServerNode(node *define.ServerNode) error {
if len(node.HostIP) == 0 || node.Port <= 0 {
return errors.New("host ip or port is invalid")
}
b.Lock()
defer b.Unlock()
for _, item := range b.severList {
if item.HostIP == hostIP && item.Port == port {
if item.HostIP == node.HostIP && item.Port == node.Port {
return errors.New("host config is already exist")
}
}
b.severList = append(b.severList, &define.ServerNode{
HostIP: hostIP,
Port: port,
Status: define.ServerNodeStatusNormal,
})
b.severList = append(b.severList, node)
return nil
}