win下 consul注册不进去。名字叫user-srv win防火墙关了 哪的错误

win下 consul注册不进去。名字叫user-srv win防火墙关了 哪的错误

package main


import (

"flag"

"fmt"

uuid "github.com/satori/go.uuid"

"google.golang.org/grpc/health"

"google.golang.org/grpc/health/grpc_health_v1"

"net"

"go.uber.org/zap"

"google.golang.org/grpc"

"mxshop_srvs/user_srv/global"

//"mxshop_srvs/user_srv/global"

"mxshop_srvs/user_srv/handler"

"mxshop_srvs/user_srv/initialize"

"mxshop_srvs/user_srv/proto"

//"mxshop_srvs/user_srv/utils"

"github.com/hashicorp/consul/api"

)


func main() {

IP := flag.String("ip", "0.0.0.0", "ip地址")

Port := flag.Int("port", 50763, "端口号")


//初始化

initialize.InitLogger()

initialize.InitConfig()

initialize.InitDB()

zap.S().Info(global.ServerConfig)


flag.Parse() //把用户传递的命令行参数解析为对应变量的值

//fmt.Println("ip:", *IP)

//fmt.Println("prot:", *Port)

//输出值是什么  源码返回*string的指针,所以打印时候 *IP

zap.S().Info("ip: ", *IP)

//if *Port == 0 {

// *Port, _ = utils.GetFreePort()

//}


zap.S().Info("port: ", *Port)


server := grpc.NewServer()

proto.RegisterUserServer(server, &handler.UserServer{})


lis, err := net.Listen("tcp", fmt.Sprintf("%s:%d", *IP, *Port))

if err != nil {

panic("failed to listen:" + err.Error())

}


err = server.Serve(lis)

if err != nil {

panic("failed to start grpc:" + err.Error())

}


//注册服务健康检查

grpc_health_v1.RegisterHealthServer(server, health.NewServer())


//服务注册

cfg := api.DefaultConfig()

cfg.Address = fmt.Sprintf("%s:%d", global.ServerConfig.ConsulInfo.Host,

global.ServerConfig.ConsulInfo.Port)


client, err := api.NewClient(cfg)

if err != nil {

panic(err)

}


//注册有坑呀,因为默认监听端口0.0.0.0,注册,服务发现就拿着0.0.0.0去访问


//服务注册不从默认里面拿,从配置文件里面取


//生成对应的检查对象

check := &api.AgentServiceCheck{

GRPC:                           fmt.Sprintf("192.168.179.128:50763"),

Timeout:                        "5s",

Interval:                       "5s",

DeregisterCriticalServiceAfter: "15s",

}


//生成注册对象

registration := new(api.AgentServiceRegistration)

registration.Name = global.ServerConfig.Name

serviceID := fmt.Sprintf("%s", uuid.NewV4())

registration.ID = serviceID

registration.Port = *Port

registration.Tags = []string{"imooc", "bobby", "user", "srv"}

registration.Address = "192.168.179.128"

registration.Check = check


//1. 如何启动两个服务

//2. 即使我能够通过终端启动两个服务,但是注册到consul中的时候也会被覆盖

err = client.Agent().ServiceRegister(registration)

zap.S().Info(err)

if err != nil {

panic(err)

}

err = server.Serve(lis)

if err != nil {

panic("failed to start grpc:" + err.Error())

}

//BIND9.17.2.x64.zip

}



相关截图:


https://img1.sycdn.imooc.com//climg/629606b209b29c9d13390180.jpg


https://img1.sycdn.imooc.com//climg/6296073d09ae526d13250528.jpg



BIND9.17.2.x64.zip 给我个地址 课上的地址没有连接 


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

登陆购买课程后可参与讨论,去登陆

1回答
bobby 2022-05-31 22:18:11

如果其他服务都能注册进入说明你的consul没有问题, 关键是看看你的name是否和现有的name重名了?

  • 提问者 自由邪帝 #1

    哪些都是用postman ,提交的
    但是用win就不行了,注册不进去呀

    2022-05-31 22:42:09
  • bobby 回复 提问者 自由邪帝 #2

    你留个qq 我加你看看

    2022-06-01 21:25:00
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

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

帮助反馈 APP下载

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

公众号

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

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师