47 lines
979 B
Go

// Package implement ...
//
// Description : dispatch...
//
// Author : go_developer@163.com<张德满>
//
// Date : 2021-04-01 5:58 下午
package implement
import (
"git.zhangdeman.cn/gateway/balance/abstract"
"git.zhangdeman.cn/zhangdeman/exception"
"math/rand"
"git.zhangdeman.cn/gateway/balance/define"
)
// NewRand ...
//
// Author : go_developer@163.com<张德满>
//
// Date : 6:51 下午 2021/4/1
func NewRand() abstract.IBalance {
return &Rand{}
}
// Rand 随机选择
//
// Author : go_developer@163.com<张德满>
//
// Date : 6:01 下午 2021/4/1
type Rand struct {
}
// Get 获取 host + 端口
//
// Author : go_developer@163.com<张德满>
//
// Date : 6:01 下午 2021/4/1
func (r Rand) Get(nodeList []*define.SeverNode) (*define.SeverNode, exception.IException) {
if len(nodeList) == 0 {
return nil, exception.New(define.ErrorTypeNodeListEmpty, nil, "服务器可用节点为空")
}
node := nodeList[rand.Intn(len(nodeList))]
return node, nil
}