From 640e022a40e6657471bc1e2eecf6306c71ab24b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E8=8C=B6=E6=B8=85=E6=AC=A2?= Date: Fri, 23 May 2025 22:16:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=B4=9F=E8=BD=BD=E5=9D=87?= =?UTF-8?q?=E8=A1=A1=E7=AD=96=E7=95=A5=E4=BF=AE=E6=94=B9=E7=9A=84=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- {dispatch => abstract}/abstract.go | 8 ++++---- server.go | 18 +++++++++++++++--- 2 files changed, 19 insertions(+), 7 deletions(-) rename {dispatch => abstract}/abstract.go (78%) diff --git a/dispatch/abstract.go b/abstract/abstract.go similarity index 78% rename from dispatch/abstract.go rename to abstract/abstract.go index 082efad..8e2e5c3 100644 --- a/dispatch/abstract.go +++ b/abstract/abstract.go @@ -1,23 +1,23 @@ -// Package dispatch... +// Package abstract ... // // Description : dispatch... // // Author : go_developer@163.com<张德满> // // Date : 2021-04-01 5:53 下午 -package dispatch +package abstract import ( "git.zhangdeman.cn/gateway/balance/define" "git.zhangdeman.cn/zhangdeman/exception" ) -// IDispatch 负载均衡的接口定义 +// IBalance 负载均衡的接口定义 // // Author : go_developer@163.com<张德满> // // Date : 2:44 下午 2021/4/1 -type IDispatch interface { +type IBalance interface { // Get 获取一个节点 Get(nodeList []*define.SeverNode) (string, exception.IException) } diff --git a/server.go b/server.go index 7b73cc1..2b8f34e 100644 --- a/server.go +++ b/server.go @@ -8,10 +8,11 @@ package balance import ( + "git.zhangdeman.cn/gateway/balance/abstract" "git.zhangdeman.cn/gateway/balance/define" - "git.zhangdeman.cn/gateway/balance/dispatch" "git.zhangdeman.cn/zhangdeman/easylock" "git.zhangdeman.cn/zhangdeman/exception" + "reflect" ) // NewServer ... @@ -19,7 +20,7 @@ import ( // Author : go_developer@163.com<张德满> // // Date : 6:51 下午 2021/4/1 -func NewServer(nodeList []*define.SeverNode, d dispatch.IDispatch) *Server { +func NewServer(nodeList []*define.SeverNode, d abstract.IBalance) *Server { return &Server{ lock: easylock.NewLock(), NodeList: nodeList, @@ -35,7 +36,7 @@ func NewServer(nodeList []*define.SeverNode, d dispatch.IDispatch) *Server { type Server struct { lock easylock.EasyLock NodeList []*define.SeverNode - Balance dispatch.IDispatch + Balance abstract.IBalance } // Add 添加一个Server @@ -81,3 +82,14 @@ func (s *Server) Get() (string, exception.IException) { }() return s.Balance.Get(s.NodeList) } + +// ChangeBalance 修改负载均衡策略 +func (s *Server) ChangeBalance(d abstract.IBalance) { + if nil == d { + return + } + if reflect.ValueOf(d).IsNil() { + return + } + s.Balance = d +}