基于华为云ServiceStage的Go语言微服务开发部署
go chasssis是华为开源的一个微服务开发框架,可以帮助业务快速进行微服务开发,以下提供手把手的指南来完成微服务的开发与部署。
前提条件
-
已了解如何购买ServiceComb微服务引擎且购买了ServiceComb微服务引擎,相关操作请参考购买ServiceComb引擎。
-
熟练掌握Docker使用。
-
了解如何购买CCE,作为部署系统使用,或是直接使用CCI进行部署。
-
对go编程已有一定了解,并能熟练使用某个IDE进行开发。
-
掌握go mod,用于管理工程依赖。
-
安装go1.12+。
安装
在根目录下编辑go.mod。
module github.com/{your_org_name}/{your_project_name} require ( github.com/huaweicse/auth v1.1.2 github.com/go-chassis/go-chassis v1.7.6 github.com/go-chassis/go-chassis-cloud v0.1.0 )
如果由于网络问题导致依赖包无法下载,请使用公共代理。
export GOPROXY=https://goproxy.io
Go语言开发环境参照官方文档安装1.12+版本。
服务运行原理
服务运行原理及说明如下。
-
consumer与provider是开发者开发出的微服务。
-
开发者到控制台购买ServiceComb专享引擎,并将服务连接到引擎上使用。
-
服务通过注册到Service center中让别的服务发现地址以实现通信,通过配置管理服务管理配置项。
使用ServiceComb微服务引擎
ServiceStage提供微服务引擎托管注册发现与配置管理等服务。
-
引入认证插件,示例如下。
import _ "github.com/huaweicse/auth/adaptor/gochassis"
在main.go文件中只需引入一行代码,运行时会自动完成与云服务间的认证鉴权。
-
配置AK/SK。
根据如何获取AK/SK?,然后在go chassis配置文件中设置AK/SK,才可访问微服务引擎。
配置文件路径:conf/auth.yaml,示例如下。
cse: credentials: accessKey: #配置AK secretKey: #配置SK
说明:免AK/SK配置:使用ServiceStage部署的服务无需配置AK/SK。
-
连接引擎。
引入所需扩展插件,确保此行在认证插件之后,示例如下。
import _ "github.com/go-chassis/go-chassis-cloud/provider/huawei/engine"
配置文件conf/chassis.yaml,指定引擎地址(如何获取请参考查看微服务引擎地址),配置项如下。
servicecomb: engine: name:test-engine
go chassis将自动发现所需服务的Endpoint,并自动配置,免用户配置。
-
微服务运行数据上报。
微服务可以将服务指标上报给Dashboard服务,请参考查看仪表盘数据。
引入上报插件,示例如下。
import _ "github.com/huaweicse/cse-collector"
确保处理链中引入了熔断器,示例如下。
handler: chain: Consumer: default: bizkeeper-consumer, router, loadbalance,transport
部署
可以使用已经准备好的样例代码进行部署,样例Demo包含order与payment两个服务,order服务调用payment服务后会返回一个字符串。
b、填写基本信息,框架选择“Go chassis”,运行环境选择“Docker”,应用名称输入:payment,设置部署集群,实例数选择1即可,其他参数使用默认配置。
c、设置应用配置信息,选择3.上传镜像中上传的payment应用镜像,设置ServiceComb微服务引擎,购买微服务引擎专享版请参考购买ServiceComb引擎。其他参数使用默认配置。
d、规格确认,提交后开始创建应用,等待应用创建完成。
-
打包payment和order的镜像。
首先选择上传到某个region的swr,比如swr.cn-north-1.myhuaweicloud.com,在该region的软件中心创建组织,比如demo,具体参考创建组织。示例命令如下。
sudo docker build . -t swr.cn-north-1.myhuaweicloud.com/demo/order:1.0
sudo docker build . -t swr.cn-north-1.myhuaweicloud.com/demo/payment:1.0
-
上传镜像
登录ServiceStage,进入软件中心,通过界面上传,请参考上传镜像。
-
部署应用
部署payment应用
a、登录ServiceStage控制台,创建应用。应用类型选择:ServiceComb应用。
部署order应用
部署过程请参考部署payment应用,应用名称输入:order,开启外网访问,应用端口填写5000,其他设置与payment应用类似。
验证结果
等待2个服务全部部署完成,点击外网访问地址。调用对应接口API“/v1/order”,返回字符串,如下图所示。
接下来
您可以体验如下更多功能。
- 框架高级特性
- 运行时治理
- 动态配置管理