Golang微服务micro 环境搭建,纯小白..

go micro 搭建

微服务搭建

目的是跟着github上面的微服务教程走一遍
链接:
构建微服务
第一章 用户服务 第一章中,有个micro new指令,生成模板

micro new --namespace=mu.micro.book --type=srv --alias=user github.com/micro-in-cn/tutorials/microservice-in-micro/part1/user-srv

参考网址,相关软件安装过程参考:
Golang微服务micro学习记录之快速开始
go-micro入门

下面说下我的流程
go 版本最好是1.12 1.13以上的

一、安装依赖

参考的是上面第一个链接

1、consul

下载,解压,配置到环境变量即可(我下载的里面只有一个.exe文件)
这个在哪使用,暂不详

2、Protobuf

下载,解压,将bin配置到环境变量(忘了在哪看的提示加到系统path)
这个在哪使用,暂不详

3、安装一些必备库,避免之后的go get提示错误

这些库因为墙的缘故… 无法使用go get 安装
实施方案有:

  1. 自己到github去下载对应的包,然后解压到对应的目录
  2. gopm 国内的go get问题的解决
  3. 设置代理,https://goproxy.io; 这个在goland中可设置,但是似乎没用…

我这采用的是第一种(提示:部分库,github搜索到的主页可能是开发板!并非release版,可到release中下载最新的)

这里4个包需要自己下载 golang.org/x/{crypto,net,sys,text}

可在 https://github.com/golang 中搜索仓库crypto,net等
解压到 gopath\src\golang.org\x
最终:

D:\go_workspace\src\golang.org\x\crypto
D:\go_workspace\src\golang.org\x\net
D:\go_workspace\src\golang.org\x\sys
D:\go_workspace\src\golang.org\x\text

注意下载的包或者通过git clone下载的包文件夹可能是crypto-master 需要去掉后哦面的-master

lego包 github.com/go-acme/lego

安装micro/micro的时候还会提示github.com/go-acme/lego 不存在
下载地址 https://github.com/go-acme/lego

D:\go_workspace\src\github.com\go-acme\lego
etcd包

下载地址 https://github.com/etcd-io/etcd

D:\go_workspace\src\go.etcd.io\etcd
gRpc

参考地址
golang安装gRpc
如果按照上面流程的包下了,可不看上面地址 ,继续跟步骤走
下载安装gRpc, 地址:https://github.com/grpc/grpc-go/releases (建议下在release版本)

D:\go_workspace\src\google.golang.org\grpc

go get -u github.com/golang/protobuf/{proto,protoc-gen-go}

go get -u github.com/golang/protobuf/{proto,protoc-gen-go}     //这个可能mac/linux有用,windows把两个包分开下载,
go get -u github.com/golang/protobuf/proto
go get -u github.com/golang/protobuf/protoc-gen-go
# install protoc-gen-micro
go get -u github.com/micro/protoc-gen-micro

上面链接中还有个 https://github.com/google/go-genproto.git 不确定要不要安装,可先忽略

cd $GOPATH/src/

go install google.golang.org/grpc

安装go-micro

go get github.com/micro/go-micro

如果出现报错,找不到包的,自己去下载到对应的目录
如出现

git clone error:RPC failed; curl 18 transfer closed with outstanding read data remaining

参考链接 参考链接 https://blog.csdn.net/PHY1161460191/article/details/88656003
执行:

git config --global http.postBuffer 524288000  #(单位B:约500M)

如果还不行,请看上面的链接,可以后面的数字再大点..
可选操作! 处理etcd包冲突问题。

可以先继续往下走,安装 micro/micro; 如果报错提示了etcd,再回来操作该步骤

注意,当你下载完micro/go-micro后,
github.com\micro\go-micro\config\source\etcd\etcd.go
github.com\micro\go-micro\config\source\etcd\util.go
github.com\micro\go-micro\config\source\etcd\watcher.go
github.com\micro\go-micro\registry\etcd\etcd.go
github.com\micro\go-micro\registry\etcd\watcher.go
github.com\micro\go-micro\store\etcd\etcd.go
github.com\micro\go-micro\sync\leader\etcd\etcd.go
github.com\micro\go-micro\sync\lock\etcd\etcd.go
以上文件中的导包 github.com/coreos/etcd/xx 统一改成go.etcd.io/etcd/xx

安装micro

go get github.com/micro/micro

如果提示了etcd包冲突,回一步看处理方案

cd GOPATH/src/github.com/micro/micro
执行
go build

如果出错,查一查...
如果成功,将在 GOPATH/bin文件夹下生成micro.exe文件,
将GOPATH/bin文件夹路径加入环境变量后我们就可以直接运行micro命令了

如已成功,
可在命令行中执行
micro -help
如果提示了一大串使用说明,即表示成功了。
如出错,下面列几个错误

错1

提示:
panic: /debug/requests is already registered. You may have two independent copies of golang.org/x/net/trace in your binary, trying to maintain separate state. 
This may involve a vendored copy of golang.org/x/net/trace.


该问题是由于xxx ,好像trace多个地方有,具体百度.
然后处理方案是:
https://blog.csdn.net/d7185540/article/details/81228092
使用govendor管理包,就不会干扰
根据上面链接,安装govendor,然后到go_workspace\src\github.com\micro\micro 目录下执行
govendor init
govendor add +external
然后执行go build

错2

go build 如出现下面错误
# github.com/micro/micro/vendor/google.golang.org/grpc/resolver/dns
vendor\google.golang.org\grpc\resolver\dns\dns_resolver.go:131:45: unknown field 'MaxDelay' in struct literal of type "github.com/micro/micro/vendor/google.golang.org/grpc/internal/backoff".Exponential
原因是src下面的版本是开发板1.25 然而vendor下的可能是重拉的1.24; 删除scr下的去github下载1.24的
然后删除micro/vendor 目录, 重新走
govendor init
govendor add +external

搞定..

你可能感兴趣的:(GO)