首页 > 其他 > 详细

consul使用

时间:2021-05-04 14:12:40      阅读:21      评论:0      收藏:0      [点我收藏+]

安装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(&registerService)
	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)
}

 删除服务 destroy.go

package main

import (
	"fmt"
	consulapi "github.com/hashicorp/consul/api"
)

func main() {
	consulConf := consulapi.DefaultConfig()
	cli, err := consulapi.NewClient(consulConf)
	if err != nil {
		fmt.Println(err)
	}

	err = cli.Agent().ServiceDeregister("1")
	fmt.Println(err)
}

  

 

 

 

 

  

consul使用

原文:https://www.cnblogs.com/itsuibi/p/14728233.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!