• go-micro升级到2.0后遇到的坑


    go-micro安装成功后(安装过程百度很多),会报错:

    原因:在go-micro里面引用的etcd的包是 而不是这样一来可能就需要改源码了。

    找到包下发现两个文件一个个改掉就好

    watcher.go:

    import (
        "context"
        "errors"
        "time"
    
        "github.com/micro/go-micro/v2/registry"
        //"github.com/coreos/etcd/clientv3"    # 原有的
        "go.etcd.io/etcd/clientv3"          # 修改后的
    )

    etcd.go

    import (
        "context"
        "crypto/tls"
        "encoding/json"
        "errors"
        "net"
        "path"
        "sort"
        "strings"
        "sync"
        "time"
    
        //"github.com/coreos/etcd/clientv3"  # 原有的
        "go.etcd.io/etcd/clientv3"       # 修改后的
        "github.com/micro/go-micro/v2/logger"
        "github.com/micro/go-micro/v2/registry"
        hash "github.com/mitchellh/hashstructure"
        //"github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes"  # 原有的
        "go.etcd.io/etcd/etcdserver/api/v3rpc/rpctypes"       # 修改后的
        "go.uber.org/zap"
    )

    然后就报错得到解决

    .....

    因为go-micro v2.0后,去除了对consul 的支持(github.com/micro/go-micro/registry里面没有consul目录),但支持etcd、mdns作为服务发现,但是老版本的go-micro仍支持consul,但是有些地方做了调整。

    首先,需要go 1.13的支持
    
    然后,在获取go-micro库时,不能使用这个指令了 go get -u github.com/micro/go-micro
          改为:go get -u github.com/micro/go-micro/v2
    原来go-micro consul的支持已经迁移到了go-plugins里面
    我们的代码里在导入consul库时,也变为了:
    "github.com/micro/go-plugins/registry/consul"
    这个在下面的代码里可以看到
    
    然后,没有安装gin的同学,需要使用如下指令获取下:
    go get -u github.com/gin-gonic/gin
    人生就是要不断折腾
  • 相关阅读:
    Laravel 中查询 where 记录
    eclipse svn重定位(relocate)
    使用git ftp发布我个人的hexo博客内容
    oracle数据库查询常用语句
    telnet关闭tomcat
    XML字符串解析成对象的时候应注意空格
    去除焦点边框线
    如何查看和更改mysql数据库文件存放位置
    设置div,td失去焦点
    (加减乘除)字符串计算机
  • 原文地址:https://www.cnblogs.com/xiangxiaolin/p/12826710.html
Copyright © 2020-2023  润新知