相关概念

在使用micro框架前必须熟悉下面的概念,本blog认为读者已经有此基础,故不再赘述。

  1. Protocol Buffers
  2. RPC和gRPC
  3. 计算机集成与分布式
  4. 负载均衡及服务注册与发现
  5. 网络通信(HTTP,UDP,常用端口【如:dns端口是53】)

开发环境中使用的程序与go包

  1. protoc(可执行程序)
  2. protoc-gen-go(可执行程序)
  3. protoc-gen-micro(可执行程序)
  4. micro(可执行程序)
  5. go-micro(go包,微服务框架,编写新服务时使用)
  6. micro下的example(样例程序,对于学习有用)

go版本说明

该blog的go版本使用的是当前最新的(go1.13.3 windows/amd64),该版本已提供了新的module功能,module用来管理不同版本之间的引用关系,在使用go get命令时应该使用该module功能(命令前加“GO111MODULE=on ”),在出现版本不一致问题时(如下图所示),可以通过该功能解决。

该功能也可通过环境变量开启,如下图所示

openshift 微服务引擎 微服务开发环境搭建_可执行程序


在对外提供功能包时应该有相应的mod文件,该文件用来记录所依赖其他包的版本信息,

protoc

该程序负责对proto文件进行解析,然后做相应的处理(语法解析等)

下载地址:https://github.com/protocolbuffers/protobuf/releases

openshift 微服务引擎 微服务开发环境搭建_openshift 微服务引擎_02


将下载的压缩文件解压到指定的路径下(如c:)

openshift 微服务引擎 微服务开发环境搭建_micro_03


配置环境变量

openshift 微服务引擎 微服务开发环境搭建_go_04


验证安装

openshift 微服务引擎 微服务开发环境搭建_micro_05

protoc-gen-go

该程序用来将proto文件翻译成go可以使用的源码文件(基于protoc程序)
安装过程:在git命令行中输入go get -v github.com/golang/protobuf/protoc-gen-go

openshift 微服务引擎 微服务开发环境搭建_go_06


安装成功的标志是在go的工作目录下bin文件夹中生成一个protoc-gen-go.exe程序【Windows下】

protoc-gen-micro

该程序用来将proto文件对应的go文件与micro进行结合(服务注册等)

安装过程:在git命令行中输入go get -v github.com/micro/protoc-gen-micro

openshift 微服务引擎 微服务开发环境搭建_可执行程序_07


安装成功的标志是在go的工作目录下bin文件夹中生成一个protoc-gen-micro.exe程序【Windows下】

go-micro

该包是用户开发服务时使用的基础框架,它不是一个可执行程序,只作为引用的源文件;该步骤可以省略,因为在安装micro时会自动下载该部分代码,它作为micro的核心代码块。

下载过程:在git命令行中输入go get -v github.com/micro/go-micro

当出现如下问题时,

openshift 微服务引擎 微服务开发环境搭建_micro_08


执行GO111MODULE=on go get -v github.com/micro/go-micro命令,如下图所示

openshift 微服务引擎 微服务开发环境搭建_可执行程序_09


这个问题是由本地缓存文件引起的,此时清除缓存并重新下载即可(go clean -modcache && go get -v github.com/micro/go-micro),如下图所示

openshift 微服务引擎 微服务开发环境搭建_micro_10


此时,相关下载已经完成。

micro

用户开发程序的运行需要micro提供的基础功能,如api网管、代理等,即微服务运行时该程序必须处于运行中。

安装过程:在git命令行中输入go get -v github.com/micro/micro

安装过程中如果出现错误,请参阅go-micro的下载,出现错误及相关解决方案都一样

安装成功的标志是在go的工作目录下bin文件夹中生成一个micro.exe程序【Windows下】

openshift 微服务引擎 微服务开发环境搭建_github_11

examples

下载过程:在git命令行中输入go get -v github.com/micro/examples

openshift 微服务引擎 微服务开发环境搭建_github_12


结果展示如下

openshift 微服务引擎 微服务开发环境搭建_go_13

环境说明

总共需要22可执行程序(go的基础功能程序除外),go的工作目录包含21个,protoc程序放在用户指定目录,他们都需要添加到path环境变量中

openshift 微服务引擎 微服务开发环境搭建_github_14

样例程序的运行

本blog以examples下的greeter为例

1、运行服务

在greeter中通过bash运行srv服务

openshift 微服务引擎 微服务开发环境搭建_可执行程序_15


2、运行客户端

在greeter中通过bash运行cli服务

openshift 微服务引擎 微服务开发环境搭建_go_16


其他更多功能参考:https://github.com/micro/examples/tree/master/greeter

如下图所示

openshift 微服务引擎 微服务开发环境搭建_openshift 微服务引擎_17

个人经验

1、功能包中应该有相应的mod文件,该文件用来记录所依赖其他包的版本信息,由mod文件可以生产sum文件,sum文件用来记录中间生产文件(存放在pkg中)的关联关系

2、在下载源码时,如果出现mod文件对应错误,此时基本上都是由缓存引起的,解决方案为:清除缓存重新下载,如下图所示

openshift 微服务引擎 微服务开发环境搭建_openshift 微服务引擎_18

安装过程中使用到的go命令

go get -v github.com/golang/protobuf/protoc-gen-go
go get -v github.com/micro/protoc-gen-micro
go get -v github.com/micro/go-micro
go clean -modcache && go get -v github.com/micro/go-micro
go get -v github.com/micro/micro
go get -v github.com/micro/examples