golang微服务框架go-micro 入门笔记1.搭建 go-micro环境 - Go语言中文社区

golang微服务框架go-micro 入门笔记1.搭建 go-micro环境


微服务的本质是让专业的人做专业的事情,做出更好的东西。

golang具备高并发,静态编译等特性,在性能、安全等方面具备非常大的优势。go-micro是基于golang的微服务编程框架,go-micro操作简单、编码高效、功能强大。但是网络上资料偏少,本系列文章定位最简单最容易上手的go-micro入门教程,所有案列来自实操,而非网络上的复制粘贴。

本章节的目的是让大家最快速搭建好go-micro环境

软件环境
操作系统win10
golanggo 12.7/AMD64
micromicro version 1.8.4
consulconsul 1.5.4

安装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

如果没有git请自行安装git

#下载地址
https://git-scm.com/downloads/

安装 protoc

访问如下网址

https://github.com/protocolbuffers/protobuf/releases

下载,不同的版本文件名称不一样,我们这里选择protoc-3.9.1-win64.zip

protoc-3.9.1-win64.zip

解压到目标文件架,我们以e:dev为例

e:devprotoc-3.9.1-win64

添加e:devprotoc-3.9.1-win64bin到环境变量path

安装protoc-gen-micro插件

这个插件主要作用是通过.proto文件生成适用于go-micro的代码

go get -u -v github.com/micro/protoc-gen-micro

安装 consul

下载windows版本

https://www.consul.io/downloads.html

解压到

e:devconsul

添加e:devconsul到环境变量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

hello,world

创建微服务

使用如下指令创建微服务

>micro new techidea8.com/microapp/hello
Creating service go.micro.srv.hello in E:winliongopathsrctechidea8.commicroapphello

.
├── main.go
├── plugin.go
├── handler
│   └── hello.go
├── subscriber
│   └── hello.go
├── protohello
│   └── 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:winliongopathsrctechidea8.commicroapphello
protoc --proto_path=.:$GOPATH/src --go_out=. --micro_out=. proto/hello/hello.proto

生成适配proto的golang代码

注意:在win系统下$GOPATH环境变量无效,因此如上脚本将创建微服务失败,因此我们需要对如上脚本进行处理

#切换到项目目录下
>cd /d E:winliongopathsrctechidea8.commicroapphello

# 根据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

启动restful api接口支持支持

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

http://127.0.0.1:8080/user/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

测试

restd插件请求接口
rested接口

推荐阅读

扫微信二维码实现网站登陆提供体验地址和源代码

开源项目golang go语言后台管理框架restgo-admin

支持手势触摸,可左右滑动的日历插件

你必须知道的18个互联网业务模型

推荐阅读

扫微信二维码实现网站登陆提供体验地址和源代码

开源项目golang go语言后台管理框架restgo-admin

支持手势触摸,可左右滑动的日历插件

你必须知道的18个互联网业务模型

转载于:https://www.cnblogs.com/techidea8/p/11407162.html

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/afb5883/article/details/102174838
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-05-16 07:31:23
  • 阅读 ( 1731 )
  • 分类:Go

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢