1234567891011121314151617181920212223242526272829303132333435 |
- package loadbalancer
- import (
- // "fmt"
- "github.com/longjoy/micro-go-course/section28/goods/pkg/discovery"
- "testing"
- )
- func TestHash(t *testing.T) {
- instances := make([]*discovery.InstanceInfo, 3)
- instances[0] = &discovery.InstanceInfo{}
- instances[0].Address = "192.168.1.1"
- instances[1] = &discovery.InstanceInfo{}
- instances[1].Address = "192.168.1.2"
- instances[2] = &discovery.InstanceInfo{}
- instances[2].Address = "192.168.1.3"
- nodeWeight := make(map[string]int)
- instanceMap := make(map[string]*discovery.InstanceInfo)
- for i := 0; i < len(instances); i++ {
- instance := instances[i]
- nodeWeight[instance.Address] = i + 1
- instanceMap[instance.Address] = instance
- println("info:" + instance.Address)
- }
- // 建立Hash环
- hash := NewHashRing()
- // 添加各个服务实例到环上
- hash.AddNodes(nodeWeight)
- // 根据请求的key来获取对应的服务实例
- host := hash.GetNode("2")
- println("ddd" + host)
- }
|