golang 之 go-micro

在安装之前首先需要对go-micro有一定的了解

https://micro.mu/docs/cn/  go-micro中文文档

 

https://juejin.im/post/5cebafe6f265da1bb80c0cc7  go-micro源码

 

https://segmentfault.com/a/1190000007917576  prodoful语法

 micro

执行下面代码会等一段时间,到在最后发现并不能安装完整,别着急,因为micro包有些是需要FQ下载,用下面的方法一个个把缺失的安装好

go get -u github.com/micro/micro

 protobuf

可以直接使用brew install protobuf 写在,也可以去git  https://github.com/protocolbuffers/protobuf/releases下载最新的包下载然后编译安装即可。最后安装下面的即可。

解压之后将bin文件夹加入环境变量,或者里面的protoc.exe路径加入环境变量,这个exe文件就是我们转换protobuf的工具。

然后我们使用一些golang对于protobuf的工具,go get相应的库

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

consul

go-micro默认使用consul,如果你不喜欢用consul,也可以自己下载etcd或者其他安装使用,后续会介绍如何安装etcd。

直接使用命令安装或者去https://www.consul.io/downloads.html 

brew install consul

 下载完之后加入环境变量,启动

consul agent -dev

安装grpc和genproto

mkdir $GOPATH/src/google.golang.org
cd $GOPATH/src/google.golang.org

git clone https://github.com/grpc/grpc-go.git grpc
git clone https://github.com/google/go-genproto.git genproto

安装 golang的net,crypt,text库

mkdir -p $GOPATH/src/golang.org/x
cd $GOPATH/src/golang.org/x

git clone https://github.com/golang/net.git
git clone https://github.com/golang/crypto.git
git clone https://github.com/golang/text.git

 最后在Mac 环境下执行,没有报错大功告成。

go install github.com/micro/micro

 环境变量

不管是windows, mac 还是Linux想要执行micro命令都需要配置环境变量。  

cd GOPATH/src/github.com/micro/micro

执行 go build

 会在GOPATH/bin文件夹下生成micro.exe文件,将GOPATH/bin文件夹路径加入环境变量后我们就可以直接运行micro命令了,如果没有在bin文件夹生成那么手动移到该文件夹。

测试

执行下面命令生成go-micro项目

micro new github.com/micro/example

 注意 github.com/micro/example只是示例,要在本地测试,直接改成自己的路径即可

那么生成的项目就在GOPATH/src/hdy/micro/example

example/
    Dockerfile  # A template docker file
    README.md   # A readme with command used
    handler/    # Example rpc handler
    main.go     # The main Go program
    proto/      # Protobuf directory
    subscriber/ # Example pubsub Subscriber

  然后运行

protoc --proto_path=. --micro_out=. --go_out=. proto/example/example.proto

  最后运行前确保etcd或者consul是开启的状态

go run main.go

  即可看到完整的一个项目了。

检测

micro list services
列出所有服务

详细还请见GitHub  https://github.com/micro/micro

  

 

  

 

 

posted @ 2019-08-04 23:52  Dwyane.wang  阅读(1021)  评论(0编辑  收藏  举报