上一篇帖子简单介绍了go-micro的整体框架结构,这一篇主要写go-micro使用方式的例子,中间会穿插一些go-micro的源码,和调用流程图,帮大家更好的理解go-micro的底层。更详细更具体的调用流程和细节,会在以后的帖子里详细讲解。
例子的github地址: gomicrorpc 跑一遍例子,也就会明白个大概。
安装所需要的环境
go-micro服务发现默认使用的是consul,
brew install consul consul agent -dev
或者直接使用使用docker跑
docker run -p 8300:8300 -p 8301:8301 -p 8301:8301/udp -p 8302:8302/udp -p 8302:8302 -p 8400:8400 -p 8500:8500 -p 53:53/udp consul
我个人更喜欢etcdv3原因我上一篇也有提到过,gomicro服务发现不支持consul集群,我之前也写过etcdv3 集群的搭建和使用帖子,有时间大家可以看一下
安装go-micro框架
go get github.com/micro/go-micro
安装protobuf和依赖 prtobuf的基础知识我这里就不讲了,如果不了解的可以看一下官方文档,就是一个跨平台,跨语言的数据序列化库,简单易学。
是go-micro用于帮助我们生成服务接口和一系列的调用代码
brew install protobuf go get -u -v github.com/golang/protobuf/{proto,protoc-gen-go} go get -u -v github.com/micro/protoc-gen-micro
protobuf也可以直接从源码安装
wget https://github.com/protocolbuffers/protobuf/releases/download/v3.6.1/protobuf-all-3.6.1.tar.gz tar zxvf protobuf-all-3.6.1.tar.gz cd protobuf-3.6.1/ ./autogen.sh ./configure make make install protoc -h
安装micro工具包,这个安装是可选项,micro提供了一系列的工具来帮助我们更好的使用go-micro。