请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

consul 一定要放到虚拟机里吗

老师, 我全套的setup都放到本地里了, go, python, consul, 但是所有的注册都fail了吗, 用了本地的对外接口

# c = consul.Consul(host="192.168.1.103")
c = consul.Consul(host= "192.168.1.186") #本地的对外ip
# 基于consul的 就更少一点了
address = "192.168.1.186"
# address = "127.0.0.1"
port = 50051
check={
    "GRPC":f"{address}:{port}",
    "GRPCUseTLS": False,
    "Timeout": "5s",
    "Interval": "5s",
    "DeregisterCriticalServiceAfter": "15s"
}
if __name__ == "__main__":
    rsp = c.agent.service.register(name="user-srv", service_id="user-srv2",
                         address=address, port=port, tags=["mxshop"],check=check)
    print(rsp)

但是所有的服务注册都fail了, 请问我一定要放到虚拟机里吗?

正在回答 回答被采纳积分+3

2回答

bobby 2021-09-23 15:49:58

你这里注册失败是说无法注册到consul中还是说能注册到consul中,但是consul健康检查会失败?

0 回复 有任何疑惑可以回复我~
  • 提问者 慕侠9157770 #1
    go或者python端注册consul success
    但是在consul ui中能出现了错误的web服务, 过段时间自动删除, 应该就是健康检查失败, 
    手动localhost 是能ping到health check的端口的.
    回复 有任何疑惑可以回复我~ 2021-09-23 22:55:30
  • bobby 回复 提问者 慕侠9157770 #2
    你要进入consul的容器中然后在容器中ping通你的主机才行,如果没有能力吧docker的容器问题搞懂可以直接部署在主机上,不是一定要部署到docker中的
    回复 有任何疑惑可以回复我~ 2021-09-27 09:58:00
  • 我也遇到了这个问题,之前用公网ip部署没问题,现在在windows虚拟机部署出现了这个问题。之前在主机上直接部署没问题。
    回复 有任何疑惑可以回复我~ 2022-06-20 15:03:46
南森_ 2021-09-21 19:13:19

我之前也都放到一起了,是可以的。

两个建议

1:如果你用公网IP,你的50051端口,必须关闭防火墙。外面也可以访问

2:你换成你的私网IP,127.0.0.1,好像不行,我试过,我用的阿里云的私网IP也是可以。

0 回复 有任何疑惑可以回复我~
  • 我之前第一遍做完项目用阿里云公网 ip可以,现在用私网ip 不行。部署在虚拟机容器里。
    回复 有任何疑惑可以回复我~ 2022-06-20 22:36:42
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信