go的服务注册和服务消费

1.服务注册

import (
    "github.com/gin-gonic/gin"
    "github.com/micro/go-micro/registry"
    "github.com/micro/go-micro/web"
    "github.com/micro/go-plugins/registry/consul"
)

// 使用gin框架
func main() {
    consulReg:=consul.NewRegistry(
        registry.Addrs("127.0.0.1:8500"),
        )
    ginRouter:=gin.Default()
    v1Group:=ginRouter.Group("/v1")
    {
        v1Group.Handle("GET","/prods", func(context *gin.Context) {
            context.JSON(200,NewProdList(5))
        })
    }

    web.NewService(web.Address(":8001"),
                    web.Handler(ginRouter),
                    web.Registry(consulReg),
                    web.Name("product")).Run()

}

2.服务消费

import (
    "fmt"
    "github.com/micro/go-micro/client/selector"
    "github.com/micro/go-micro/registry"
    "github.com/micro/go-plugins/registry/consul"
    "log"
)

func main() {
    consulReg:=consul.NewRegistry(
        registry.Addrs("127.0.0.1:8500"))
    getService,err:=consulReg.GetService("product")
    if err!=nil{
        log.Fatal("err")
    }
  //轮询的方式获取服务
  //next:=selector.RoundRobin(getService)
  // 随机的方式获取服务
    next:=selector.Random(getService)
    node,err := next()
    if err!=nil{
        log.Fatal("err")
    }
    fmt.Println(node.Id,node.Address,node.Metadata)
}
原文地址:https://www.cnblogs.com/huqi96/p/14388823.html