Skip to content

mazezen/loadbalance

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

loadbalance

随机、轮训、权重、哈希负载均衡

GitHub releaselicense

安装

go get github.com/mazezen/[email protected]

E.g

1. 随机

r := &RandomBalancing{}
r.Add("127.0.0.1:2003")
r.Add("127.0.0.1:2004")
r.Add("127.0.0.1:2005")
r.Add("127.0.0.1:2006")
r.Add("127.0.0.1:2007")

fmt.Println(r.Next())

2.轮训

r := &RoundRotationBalance{}
r.Add("127.0.0.1:2003")
r.Add("127.0.0.1:2004")
r.Add("127.0.0.1:2005")
r.Add("127.0.0.1:2006")
r.Add("127.0.0.1:2007")

fmt.Println(r.Next())

3.权重

r := &WeightBalance{}
r.Add("127.0.0.1:2003", "4")
r.Add("127.0.0.1:2004", "3")
r.Add("127.0.0.1:2005", "2")

fmt.Println(r.Next())
fmt.Println(r.Next())
fmt.Println(r.Next())
fmt.Println(r.Next())
fmt.Println(r.Next())
fmt.Println(r.Next())
fmt.Println(r.Next())
fmt.Println(r.Next())
fmt.Println(r.Next())
fmt.Println(r.Next())
fmt.Println(r.Next())

4. 一致性hash

r := NewConsistentHashBalance(10, nil)
r.Add("127.0.0.1:2003")
r.Add("127.0.0.1:2004")
r.Add("127.0.0.1:2005")
r.Add("127.0.0.1:2006")
r.Add("127.0.0.1:2007")

fmt.Println(r.Get("http://127.0.0.1:2002/base/getinfo"))
fmt.Println(r.Get("http://127.0.0.1:2002/base/errinfo"))
fmt.Println(r.Get("http://127.0.0.1:2002/base/getinfo"))
fmt.Println(r.Get("http://127.0.0.1:2002/base/pwd"))

fmt.Println(r.Get("127.0.0.1"))
fmt.Println(r.Get("192.168.0.1"))
fmt.Println(r.Get("127.0.0.1"))

About

go实现随机、轮训、权重、哈希负载均衡

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages