package discovery import ( "context" "fmt" clientv3 "go.etcd.io/etcd/client/v3" "go.etcd.io/etcd/client/v3/naming/endpoints" ) func EtcdDialUrl(serviceName string) string { return fmt.Sprintf("etcd:///%s", serviceName) } func EtcdRegistry(client *clientv3.Client, serviceName, addr string, attrs map[string]string) (err error) { em, err := endpoints.NewManager(client, "Hello") if err != nil { return } ip, port, err := RegisterIpPort(addr) if err != nil { return } fmt.Println() err = em.AddEndpoint(context.Background(), fmt.Sprintf("%s/%s", serviceName, ip), endpoints.Endpoint{ Addr: fmt.Sprintf("%s:%d", ip, port), Metadata: attrs, }, ) return }