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
    人生就是要不断折腾
  • 相关阅读:
    一个Electron的设计缺陷及应对方案
    如何点击穿透Electron不规则窗体的透明区域
    Electron团队为什么要干掉remote模块
    Clickhouse 单机双实例
    Kafka安全认证SASL/PLAIN
    Syslog的使用
    Kafka Consumer
    Kafka Producer客户端
    Kafka客户端操作
    springboot集成flyway实践
  • 原文地址:https://www.cnblogs.com/xiangxiaolin/p/12826710.html
Copyright © 2011-2022 走看看