ZBLOG

给我完整的代码 能跑出来的

以下是一个完整的示例代码,展示了如何使用Golang进行Consul服务注册和发现:

package main

import (
	"fmt"
	"log"
	"net/http"

	"github.com/hashicorp/consul/api"
)

func main() {
	// 创建 Consul 客户端
	config := api.DefaultConfig()
	client, err := api.NewClient(config)
	if err != nil {
		log.Fatal(err)
	}

	// 注册服务
	reg := &api.AgentServiceRegistration{
		ID:   "my-service-1",
		Name: "My Service",
		Port: 8080,
	}
	err = client.Agent().ServiceRegister(reg)
	if err != nil {
		log.Fatal(err)
	}

	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
		fmt.Fprintf(w, "Hello from My Service")
	})

	go func() {
		log.Fatal(http.ListenAndServe(":8080", nil))
	}()

	fmt.Println("My Service is running on port 8080")

	// 发现服务
	services, _, err := client.Catalog().Service("My Service", "", nil)
	if err != nil {
		log.Fatal(err)
	}

	for _, service := range services {
	  fmt.Printf("Found service: %s, address: %s:%d\n", service.ServiceName, service.ServiceAddress, service.ServicePort)
	  // 可以根据需要处理找到的服务信息
    }
	
	select {}
}

请确保您已经安装了Consul并启动了Consul服务器。运行上述代码后,您将能够在本地的8080端口上看到输出“Hello from My Service”,并且可以从Consul中发现该服务的信息。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=10613

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?