本注意事项基于go-microV2
- 可以同时在一台服务器上的不同端口启动gomicro的服务端和客户端,如果不指定rigistry的话,默认是使用mdns作为注册中心
- 当在一个进程里面同时启动服务端和客户端的时候(同步启动或者使用goroutine异步启动)一旦有一个newService中进行了registry配置,则启动的service都会使用这个注册中心
// 这是server的配置
svc1 := micro.NewService(
micro.Name("server"),
micro.Address(":8091"),
micro.Registry(r),
micro.WrapHandler(wrapper.LogWrapper),
)
metadata := make(map[string]string)
//这是webclient的配置
svc2 := web.NewService(
web.Name("web"),
web.Address(":8090"),
web.Metadata(metadata),
)
// 同时启动两个服务时,即使没有向webclient的NewService中指明注册中心,也会使用server中指定的r作为注册中心,而不是默认的mDNS
svc1.run()
svc2.run()
- 同时启动客户端和服务端的时候,如果没有给web.NewService添加metadata,会导致map相关的错误,此时,给一个空metadata即可(如上面的代码)