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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM