Skip to content

zzonee/registry

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

##服务注册与服务发现

接口:

type Registry interface {
	Register(ops ...Option)
	Close()
}

type Discovery interface {
	Discover(target string) (<-chan []Instance, error)
	Close()
}

服务配置数据结构:

type Instance struct {
	// 服务名
	ServiceName string            `json:"servicename"`
	// 地址,"127.0.0.1:8000"
	Address     string            `json:"address"`
	// 元数据,可以带上自定义的附加数据
	Metadata    map[string]string `json:"metadata"`
}

使用etcd做grpc服务发现

package main
import (
	registry "github.com/zzonee/registry/grpc/etcd"
	"go.etcd.io/etcd/clientv3"
	"google.golang.org/grpc"
)

func main() {
	...
	conf := clientv3.Config{
		Endpoints:[]string{"127.0.0.1:2379"},
	}
	err := registry.RegisterBuilder(conf)
	if err != nil {
		panic(err)
	}
	
	...
	conn, err := grpc.Dial("etcd://default/servicename")
	...
}

在k8s中做grpc服务发现

package main
import (
	registry "github.com/zzonee/registry/grpc/k8s"
	"google.golang.org/grpc"
)

func main() {
	...
	
	err := registry.RegisterBuilder()
	if err != nil {
		panic(err)
	}
	
	...
	conn, err := grpc.Dial("k8s://default/servicename:portname")
	...
}

About

服务注册与服务发现

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages