上节我们在启动go-micro
服务时,可以看到使用的服务注册是mdns
。这节来了解下如何使用consul
。默认的服务发现是在同一台机器上,在生产环境下,服务与服务发现部署到同一机器,这不是个很好的实践。所以把consul
机器独立出来就很有必要。
下面以Go Micro框架文章中的服务为例,编写一个go-micro
服务。服务端microserver_consul.go
文件
package main
import (
"context"
"fmt"
"github.com/micro/go-micro"
"github.com/micro/go-micro/registry"
"github.com/micro/go-micro/registry/consul"
)
type Greeter struct {}
func (g *Greeter) Hello(ctx context.Context, req *HelloRequest, rsp *HelloResponse) error {
rsp.Greeting = "hello " + req.Name
return nil
}
func main() {
reg := consul.NewRegistry(func(op *registry.Options) {
op.Addrs = []string{
"127.0.0.1:8500",
}
})
service := micro.NewService(
micro.Registry(reg),
micro.Name("helloworld