完成Server基础逻辑

This commit is contained in:
白茶清欢 2021-04-01 17:31:53 +08:00
parent 11bb380827
commit d962588d2f
3 changed files with 36 additions and 7 deletions

View File

@ -17,10 +17,11 @@ import (
// //
// Date : 2:46 下午 2021/4/1 // Date : 2:46 下午 2021/4/1
type SeverNode struct { type SeverNode struct {
Host string `json:"host"` ID string `json:"id"` // 机器编号
Port int `json:"port"` Host string `json:"host"` // ip
Weight float64 `json:"weight"` Port int `json:"port"` // 端口
Status int `json:"status"` Weight float64 `json:"weight"` // 权重
Status int `json:"status"` // 状态
} }
// Server server 的具体配置 // Server server 的具体配置
@ -31,6 +32,7 @@ type SeverNode struct {
type Server struct { type Server struct {
lock easylock.EasyLock lock easylock.EasyLock
NodeList []*SeverNode NodeList []*SeverNode
Balance IBalance
} }
// Add 添加一个Server // Add 添加一个Server
@ -39,11 +41,36 @@ type Server struct {
// //
// Date : 3:00 下午 2021/4/1 // Date : 3:00 下午 2021/4/1
func (s *Server) Add(node *SeverNode) { func (s *Server) Add(node *SeverNode) {
s.lock.Lock("") _ = s.lock.Lock()
defer s.lock.Unlock("") defer s.lock.Unlock()
s.NodeList = append(s.NodeList, node) 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 负载均衡的接口定义 // IBalance 负载均衡的接口定义
// //
// Author : go_developer@163.com<张德满> // Author : go_developer@163.com<张德满>

2
go.mod
View File

@ -2,4 +2,4 @@ module github.com/go-developer/balance
go 1.16 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

2
go.sum
View File

@ -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/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 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-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/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/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8=
github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA=