From d962588d2f294fe04542b9102b551c88f4f8bd65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=BE=B7=E6=BB=A1?= Date: Thu, 1 Apr 2021 17:31:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90Server=E5=9F=BA=E7=A1=80?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- abstract.go | 39 +++++++++++++++++++++++++++++++++------ go.mod | 2 +- go.sum | 2 ++ 3 files changed, 36 insertions(+), 7 deletions(-) diff --git a/abstract.go b/abstract.go index 7503267..a965306 100644 --- a/abstract.go +++ b/abstract.go @@ -17,10 +17,11 @@ import ( // // 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"` + ID string `json:"id"` // 机器编号 + Host string `json:"host"` // ip + Port int `json:"port"` // 端口 + Weight float64 `json:"weight"` // 权重 + Status int `json:"status"` // 状态 } // Server server 的具体配置 @@ -31,6 +32,7 @@ type SeverNode struct { type Server struct { lock easylock.EasyLock NodeList []*SeverNode + Balance IBalance } // Add 添加一个Server @@ -39,11 +41,36 @@ type Server struct { // // Date : 3:00 下午 2021/4/1 func (s *Server) Add(node *SeverNode) { - s.lock.Lock("") - defer s.lock.Unlock("") + _ = s.lock.Lock() + defer s.lock.Unlock() s.NodeList = append(s.NodeList, node) } +// Remove 移除一个server +// +// Author : go_developer@163.com<张德满> +// +// Date : 5:09 下午 2021/4/1 +func (s *Server) Remove(nodeID string) { + _ = s.lock.Lock() + defer s.lock.Unlock() + for nodeIndex, item := range s.NodeList { + if item.ID == nodeID { + s.NodeList = append(s.NodeList[0:nodeIndex], s.NodeList[nodeIndex:]...) + break + } + } +} + +// Get 按照指定策略获取一台机器 +// +// Author : go_developer@163.com<张德满> +// +// Date : 5:17 下午 2021/4/1 +func (s *Server) Get() string { + return "" +} + // IBalance 负载均衡的接口定义 // // Author : go_developer@163.com<张德满> diff --git a/go.mod b/go.mod index 17bf25a..74cf717 100644 --- a/go.mod +++ b/go.mod @@ -2,4 +2,4 @@ module github.com/go-developer/balance go 1.16 -require github.com/go-developer/gopkg v0.0.0-20210326100134-08a8a8015cc5 +require github.com/go-developer/gopkg v0.0.0-20210401085834-5312092ad68b diff --git a/go.sum b/go.sum index f654069..0ecc239 100644 --- a/go.sum +++ b/go.sum @@ -10,6 +10,8 @@ github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= github.com/go-developer/gopkg v0.0.0-20210326100134-08a8a8015cc5 h1:Id0MV9wihSMCncZ7OshI2ZNouijF9lrbIy+6vI6MoLM= github.com/go-developer/gopkg v0.0.0-20210326100134-08a8a8015cc5/go.mod h1:DZcG3JkuXhqmHwZMrSJefYWNPns7nYBhA9q4ocmpG5o= +github.com/go-developer/gopkg v0.0.0-20210401085834-5312092ad68b h1:PduruFtrPw7BoxesthPBbYazz6jueMhBEFHxRA3Rd1I= +github.com/go-developer/gopkg v0.0.0-20210401085834-5312092ad68b/go.mod h1:DZcG3JkuXhqmHwZMrSJefYWNPns7nYBhA9q4ocmpG5o= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA=