stack-labs / questions

任何关于Micro的问题都可以在Issue中创建
27 stars 6 forks source link

micro --registry=etcd call 报错 #29

Open yoloyi opened 4 years ago

yoloyi commented 4 years ago

Hi. 谢谢你写的的教程。

我跟着你 part1 写了 user。

namespacego.micro.demo

然后运行测试 Service.QueryUserByName $ micro --registry=etcd call go.micro.demo.srv.user User.QueryUserByName '{"userName":"micro"}'

返回结果 error calling go.micro.demo.srv.user.User.QueryUserByName: {"id":"go.micro.client","code":500,"detail":"connection error: dial tcp [fe80::1]:64053: connect: no route to host","status":"Internal Server Error"}

我 etcd 环境是 Docker 并且在运行的时候与你教程上的结果一致。

但是就是在测试的时候,报这个500的错误。

服务运行output image

服务测试 output

image

期待你的解答。谢谢

printfcoder commented 4 years ago

IPv6?我没有这个网络,看你的服务没有问题。

printfcoder commented 4 years ago

把go-micro的版本升到最新试试,再重新编译micro

yoloyi commented 4 years ago

新版本不行,这个问题是网卡的问题。

后面我在每一个运行的时候 指定serve_address 就可以。。公司环境劝退。

yoloyi commented 4 years ago

实在没辙。我觉得,在这种特定的情况,这个算是一个 micro 的 issue。看网络上的一些资料,这种情况还挺常见的。

printfcoder commented 4 years ago

不太紧急的问题,ip会拿查询到的第一个,这里确实有待商榷,不过可以使用指定ip先来用着,线上环境一般不会有多网卡的,PC机才会有。