微服务框架—搭建 go-micro环境详解编程语言

1.安装micro

需要使用GO1.11以上版本

#linux 下 
export GO111MODULE=on 
export GOPROXY=https://goproxy.io 
# windows下设置如下环境变量 
setx GO111MODULE on 
setx GOPROXY https://goproxy.io 
# 使用如下指令安装 
go get -u -v github.com/micro/micro 
go get -u -v github.com/micro/go-micro 

2.安装 protoc

https://github.com/protocolbuffers/protobuf/releases 
//下载,不同的版本文件名称不一样,我们这里选择protoc-3.9.1-win64.zip 
protoc-3.9.1-win64.zip 
//解压到目标文件架,我们以e:/dev为例 
e:/dev/protoc-3.9.1-win64 
//添加e:/dev/protoc-3.9.1-win64/bin到环境变量path 

3.安装protoc-gen-micro插件

//这个插件主要作用是通过.proto文件生成适用于go-micro的代码 
go get -u -v github.com/micro/protoc-gen-micro 

4.安装 consul

//下载windows版本 
https://www.consul.io/downloads.html 
//解压到 
e:/dev/consul 

添加e:/dev/consul到环境变量path
使用如下指查看是否安装成功,如下所示安装成功

>consul 
Usage: consul [--version] [--help] <command> [<args>] 
Available commands are: 
    acl            Interact with Consul's ACLs 
    agent          Runs a Consul agent 
    catalog        Interact with the catalog 
    config         Interact with Consul's Centralized Configurations 
    connect        Interact with Consul Connect 
    debug          Records a debugging archive for operators 

5.创建微服务 hello world

//使用如下指令创建微服务 
>micro new techidea8.com/microapp/hello 
Creating service go.micro.srv.hello in E:/winlion/gopath/src/techidea8.com/microapp/hello 
 
. 
├── main.go 
├── plugin.go 
├── handler 
│   └── hello.go 
├── subscriber 
│   └── hello.go 
├── proto/hello 
│   └── hello.proto 
├── Dockerfile 
├── Makefile 
├── README.md 
└── go.mod 
 
 
download protobuf for micro: 
 
brew install protobuf 
go get -u github.com/golang/protobuf/{proto,protoc-gen-go} 
go get -u github.com/micro/protoc-gen-micro 
 
compile the proto file hello.proto: 
 
cd E:/winlion/gopath/src/techidea8.com/microapp/hello 
protoc --proto_path=.:$GOPATH/src --go_out=. --micro_out=. proto/hello/hello.proto 

6.生成适配proto的golang代码

#切换到项目目录下 
>cd /d E:/winlion/gopath/src/techidea8.com/microapp/hello 
 
# 根据proto生成文件 
>protoc --proto_path=. --go_out=. --micro_out=. proto/hello/hello.proto 
 
# 启动应用 
>go run main.go 
2019/08/19 13:00:46 Transport [http] Listening on [::]:54689 
2019/08/19 13:00:46 Broker [http] Connected to [::]:54690 
2019/08/19 13:00:46 Registry [mdns] Registering node: go.micro.srv.hello-4851dce2-ab5d-4e4c-801e-44dae5d93f26 
2019/08/19 13:00:46 Subscribing go.micro.srv.hello-4851dce2-ab5d-4e4c-801e-44dae5d93f26 to topic: go.micro.srv.hello 
2019/08/19 13:00:46 Subscribing go.micro.srv.hello-4851dce2-ab5d-4e4c-801e-44dae5d93f26 to topic: go.micro.srv.hello 
 
# 查看是否启动 
>micro list services 
go.micro.srv.hello 
topic:go.micro.srv.hello 

7.启动restful api接口支持支持

注意其中的–namespace参数,我们每一个微服务都属于一个命名空间,通过api暴露出来该命名空间后,满足go.micro.srv.*格式的微服务都可以访问。如go.micro.srv.hello可以通过如下格式访问

# 访问http://127.0.0.1:8080/hello/call 
 
>micro api --namespace=go.micro.srv 
2019/08/19 13:07:11 Registering API Default Handler at / 
2019/08/19 13:07:11 HTTP API Listening on [::]:8080 
2019/08/19 13:07:11 Transport [http] Listening on [::]:54934 
2019/08/19 13:07:11 Broker [http] Connected to [::]:54935 
2019/08/19 13:07:11 Registry [mdns] Registering node: go.micro.api-1753185c-b8e1-49c4-aa0f-617f243a8e2a 

8.测试

微服务框架---搭建 go-micro环境详解编程语言

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/18129.html

(0)
上一篇 2021年7月19日 20:50
下一篇 2021年7月19日 20:50

相关推荐

发表回复

登录后才能评论