请稍等 ...
×

采纳答案成功!

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

服务注册一直不成功

bobby老师,我的服务注册一直不成功,用http就可以 换成grpc就一直显示失败图片描述

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

1回答

bobby 2021-06-06 23:07:01

你要让consul能检查成功那么你可以手动进入consul容器然后在容器中使用curl命令访问一下试试是否能访问

0 回复 有任何疑惑可以回复我~
  • 提问者 慕仰4468487 #1
    老师您好 我又来打扰了:
    这种方法注册后总是显示失败的:
        register = consul_test.ConsulRegister("114.67.125.255", 8500)
        if not register.register(name="consul_test", id="tttttt",
                                 address="116.196.79.227", port=50051, tags=["python", "grpc", "consul", "test"],
                                 check=None):
    
    如果改成tcp就可以
        c = consul.Consul(host="114.67.125.255")  # 获取与consul的连接
        check = consul.Check.tcp("114.67.125.255", 50051, "10s")  # 设置心跳检测的超时时间和对应的ip和port端口
        register = c.agent.service.register("python_grpc", f"python_grpc-114.67.125.255-50051", address="114.67.125.255", port=50051,
                                 check=check)  # 注册
    回复 有任何疑惑可以回复我~ 2021-06-09 15:11:10
  • 提问者 慕仰4468487 #2
    用 go 实现 注册也是失败
    func ReisterToConsul(address string, port int, name string, tags []string, id string) error {
    	cfg := api.DefaultConfig()
    	cfg.Address = "114.67.125.255:8500"
    	client, err := api.NewClient(cfg)
    	if err != nil {
    		panic(err)
    	}
    	registeration := &api.AgentServiceRegistration{
    		ID:      id,      // 服务节点的名称
    		Name:    name,    // 服务名称
    		Tags:    tags,    // tag,可以为空
    		Port:    port,    // 服务端口
    		Address: address, // 服务 IP
    		Check: &api.AgentServiceCheck{ // 健康检查
    			Interval:                       "5s",                                         // 健康检查间隔
    			GRPC:                           fmt.Sprintf("%v:%v/%v", address, port, name), // grpc 支持,执行健康检查的地址,service 会传到 Health.Check 函数中
    			DeregisterCriticalServiceAfter: "15s",                                        // 注销时间,相当于过期时间
    			Timeout:                        "5s",
    		},
    	}
    
    	err = client.Agent().ServiceRegister(registeration)
    	if err != nil {
    		panic(err)
    	}
    	return nil
    }
    
    func main() {
    	_ = ReisterToConsul("114.67.125.255", 50051, "consul_test", []string{"Golang", "GRPC"}, "Go_consul")
    
    }
    
    是不是grpc模式会有问题
    回复 有任何疑惑可以回复我~ 2021-06-09 15:12:17
  • 提问者 慕仰4468487 #3
    我应该知道哪里错了 没有实现健康检测那个方法
    回复 有任何疑惑可以回复我~ 2021-06-09 21:16:36
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号