安装consul
下载地址 https://releases.hashicorp.com/consul/,将下载的consul.exe 文件目录添加到系统环境中,然后执行 consul agent -dev 启动,默认监听8500端口,可以访问 http://127.0.0.1:8500/ 进行查看
在golang项目中安装consul
go get github.com/hashicorp/consul
代码:
server.go 注册服务
package main import ( "fmt" consulapi "github.com/hashicorp/consul/api" ) func main() { consulConfig := consulapi.DefaultConfig() fmt.Println(consulConfig) consulClient, err := consulapi.NewClient(consulConfig) if err != nil { fmt.Println(err) } registerService := consulapi.AgentServiceRegistration{ ID: "1", Tags: []string{"grpctest"}, Port: 8082, Name: "grpc api", Address: "127.0.0.1", Check: &consulapi.AgentServiceCheck{ CheckID: "grpc api", Interval: "5s", Timeout: "5s", TCP: "127.0.0.1:8082", }, } err = consulClient.Agent().ServiceRegister(®isterService) fmt.Println(err) }
client.go 发现可用服务
package main import ( "fmt" consulapi "github.com/hashicorp/consul/api" ) func main() { consulConf := consulapi.DefaultConfig() consulClient, err := consulapi.NewClient(consulConf) if err != nil { fmt.Println(err) } serviceEntry, _, _ := consulClient.Health().Service("grpc api", "grpctest", false, &consulapi.QueryOptions{}) fmt.Println(serviceEntry[0].Service.Address) fmt.Println(serviceEntry[0].Service.Port) }