78 lines
1.7 KiB
Go
78 lines
1.7 KiB
Go
package etcd
|
|
|
|
import (
|
|
"github.com/fox/fox/log"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
const (
|
|
etcdAddress1 = "192.168.232.128:2379"
|
|
etcdAddress2 = "114.132.124.145:2379"
|
|
)
|
|
|
|
/*
|
|
sudo docker run -d \
|
|
--name my-etcd \
|
|
-p 2379:2379 \
|
|
-p 2380:2380 \
|
|
quay.io/coreos/etcd:v3.6.0 \
|
|
etcd \
|
|
--name etcd-single \
|
|
--data-dir /etcd-data \
|
|
--initial-advertise-peer-urls http://0.0.0.0:2380 \
|
|
--listen-peer-urls http://0.0.0.0:2380 \
|
|
--advertise-client-urls http://0.0.0.0:2379 \
|
|
--listen-client-urls http://0.0.0.0:2379 \
|
|
--initial-cluster etcd-single=http://0.0.0.0:2380
|
|
|
|
sudo docker run -d --name etcdkeeper -p 8080:8080 evildecay/etcdkeeper
|
|
*/
|
|
func TestService(t *testing.T) {
|
|
_ = etcdAddress1
|
|
_ = etcdAddress2
|
|
log.Open("test.log", log.DebugL)
|
|
// 创建注册中心
|
|
registry, err := NewRegistry[ServiceNode]([]string{etcdAddress2}, "", "", ServiceNode{
|
|
Name: "instance-1",
|
|
Type: "user-service",
|
|
})
|
|
if err != nil {
|
|
log.Fatal(err.Error())
|
|
return
|
|
}
|
|
|
|
// 监控服务变化
|
|
registry.watchServices()
|
|
|
|
time.Sleep(60 * time.Second)
|
|
registry.UnregisterService()
|
|
}
|
|
|
|
func TestTopicRegistry(t *testing.T) {
|
|
_ = etcdAddress1
|
|
_ = etcdAddress2
|
|
log.Open("test.log", log.DebugL)
|
|
// 创建注册中心
|
|
registry, err := NewRegistry[TopicNode]([]string{etcdAddress2}, "", "", TopicNode{
|
|
Name: "instance-1",
|
|
Creator: "instance-1",
|
|
})
|
|
if err != nil {
|
|
log.Fatal(err.Error())
|
|
return
|
|
}
|
|
|
|
// 监控服务变化
|
|
registry.watchServices()
|
|
registry.GetNodes().Range(func(k, v interface{}) bool {
|
|
if node, ok := v.(TopicNode); ok {
|
|
log.DebugF("this is topic:%v", node.Name)
|
|
}
|
|
return true
|
|
})
|
|
|
|
time.Sleep(60 * time.Second)
|
|
registry.UnregisterService()
|
|
}
|