最近再研究引入consul作為micro的注冊中心和配置中心的時候,遇到了個問題
micro --registry=consul --registry_address=xxxxx api --handler=api
看着網上搜刮回來的資料,執行命令暴露端口使其能通過http訪問,然后就報錯了 ,--registry=consul --registry_address=xxxxx 這兩個參數無法使用使用,去掉這兩個參數直接運行,consul注冊不了服務又會導致無法找到該服務。。。
在運行開源項目遇到問題的時候,我一般的解決思路是優先去github上的issue去搜索關鍵字,沒找到的話就去查官方文檔和google,之后再issue上找到了解決方法,原因是micro在1.13之后的版本,已經不支持命令行使用consul了,解決方法就是重新編譯micro,先放下地址
https://github.com/micro/micro/issues/405
這里簡單的說下步驟
1、cd $GOPATH/src/github.com/micro/micro (如果用的是go module,那么就去pkg目錄下去找,最簡單的方法就是ide隨便引入micro的方法,鼠標點一下調用方法出來的文件就能找到目錄了)
2、創建plugins.go並加入下面的代碼
package main import ( _ "github.com/micro/go-plugins/registry/consul" )
3、重新編譯
go build -o micro main.go plugins.go
4、最后用重新編譯的可執行文件重新運行命令即可