zoukankan      html  css  js  c++  java
  • 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
    人生就是要不断折腾
  • 相关阅读:
    vue中的样式
    v-model 双向数据绑定
    v-on 事件修饰符
    Linq Join
    Elasticsearch.Net 异常:[match] query doesn't support multiple fields, found [field] and [query]
    MongoDB开启权限认证
    elasticsearch备份与恢复
    elasticserach + kibana环境搭建
    Kibana TypeError : Object #<GlobalState> has no method 'setDefaults'
    匿名函数
  • 原文地址:https://www.cnblogs.com/xiangxiaolin/p/12826710.html
Copyright © 2011-2022 走看看