Log file created at: 2019/04/17 16:05:36
Running on machine: noone
Binary: Built with gc go1.12.4 for linux/amd64
Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg
E0417 16:05:36.055643 12645 motan.go:282] [ZkRegistry] connect server error. err:lookup : no such host
client.ERROR
Log file created at: 2019/04/17 16:05:57
Running on machine: noone
Binary: Built with gc go1.12.4 for linux/amd64
Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg
注册中心使用
zookeeper
集群方式时,服务无法正常注册到注册中心日志信息如下:
server.ERROR
client.ERROR
执行
go run client.go
时有如下输出:zookeeper
集群是使用docker
搭建的,同样情况下我使用Java
则不存在这个问题,基本可以排除zookeeper
集群的问题。另外当
zk-registry
中配置host
和port
为任意一个zookeeper
节点时,都可以正常运行请问一下,这个可能是什么原因引起的?
具体配置如下:
motan-server.yaml
config of registries
motan-registry: zk-registry: protocol: zookeeper address: "127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183" registrySessionTimeout: 10000
conf of basic service
motan-basicService: mybasicService: application: "server-test" group: motan-demo-rpc protocol: motan2 registry: zk-registry haStrategy: failover loadbalance: roundrobin serialization: simple nodeType: server
conf of services
motan-service: mytest-demo: path: cn.interfaces.rpc.MotanDemoService basicService: mybasicService ref : "main.MotanDemoService" export: "motan2:8009"
代码如下:
server.go
import ( "fmt" "time"
)
func main() { runServer() }
func runServer() { mscontext := motan.GetMotanServerContext("./../conf/motan-server.yaml") mscontext.RegisterService(&MotanDemoService{}, "") mscontext.Start(nil) mscontext.ServicesAvailable() //注册服务后,默认并不提供服务,调用此方法后才会正式提供服务。需要根据实际使用场景决定提供服务的时机。作用与java版本中的服务端心跳开关一致。 time.Sleep(time.Second * 50000000) }
type MotanDemoService struct{}
func (m *MotanDemoService) Hello(name string) string { fmt.Printf("MotanDemoService hello:%s\n", name) return "hello " + name }