最近再研究引入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、最后用重新编译的可执行文件重新运行命令即可