基于华为云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+版本。

服务运行原理

服务运行原理及说明如下。

基于华为云ServiceStage的Go语言微服务开发部署_第1张图片

  • consumer与provider是开发者开发出的微服务。

  • 开发者到控制台购买ServiceComb专享引擎,并将服务连接到引擎上使用。

  • 服务通过注册到Service center中让别的服务发现地址以实现通信,通过配置管理服务管理配置项。

 

使用ServiceComb微服务引擎

ServiceStage提供微服务引擎托管注册发现与配置管理等服务。

  1. 引入认证插件,示例如下。

    import _ "github.com/huaweicse/auth/adaptor/gochassis"

    在main.go文件中只需引入一行代码,运行时会自动完成与云服务间的认证鉴权。

  2. 配置AK/SK。

    根据如何获取AK/SK?,然后在go chassis配置文件中设置AK/SK,才可访问微服务引擎。

    配置文件路径:conf/auth.yaml,示例如下。

    cse:
      credentials:
        accessKey: #配置AK
        secretKey: #配置SK
    说明: 

    免AK/SK配置:使用ServiceStage部署的服务无需配置AK/SK。

  3. 连接引擎。

    引入所需扩展插件,确保此行在认证插件之后,示例如下。

    import _ "github.com/go-chassis/go-chassis-cloud/provider/huawei/engine"

    配置文件conf/chassis.yaml,指定引擎地址(如何获取请参考查看微服务引擎地址),配置项如下。

    servicecomb:  engine:    name:test-engine

    go chassis将自动发现所需服务的Endpoint,并自动配置,免用户配置。

  4. 微服务运行数据上报。

    微服务可以将服务指标上报给Dashboard服务,请参考查看仪表盘数据。

    引入上报插件,示例如下。

    import _ "github.com/huaweicse/cse-collector"

    确保处理链中引入了熔断器,示例如下。

    handler:
      chain:
        Consumer:
          default: bizkeeper-consumer, router, loadbalance,transport

部署

可以使用已经准备好的样例代码进行部署,样例Demo包含order与payment两个服务,order服务调用payment服务后会返回一个字符串。

基于华为云ServiceStage的Go语言微服务开发部署_第2张图片

b、填写基本信息,框架选择“Go chassis”,运行环境选择“Docker”,应用名称输入:payment,设置部署集群,实例数选择1即可,其他参数使用默认配置。

基于华为云ServiceStage的Go语言微服务开发部署_第3张图片

c、设置应用配置信息,选择3.上传镜像中上传的payment应用镜像,设置ServiceComb微服务引擎,购买微服务引擎专享版请参考购买ServiceComb引擎。其他参数使用默认配置。

基于华为云ServiceStage的Go语言微服务开发部署_第4张图片

d、规格确认,提交后开始创建应用,等待应用创建完成。

  1. 打包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
  2. 上传镜像

    登录ServiceStage,进入软件中心,通过界面上传,请参考上传镜像。

  3. 部署应用

    部署payment应用

    a、登录ServiceStage控制台,创建应用。应用类型选择:ServiceComb应用。

 

部署order应用

部署过程请参考部署payment应用,应用名称输入:order,开启外网访问,应用端口填写5000,其他设置与payment应用类似。

 

验证结果

等待2个服务全部部署完成,点击外网访问地址。调用对应接口API“/v1/order”,返回字符串,如下图所示。

5.png

接下来

您可以体验如下更多功能。

- 框架高级特性

- 运行时治理

- 动态配置管理

 

你可能感兴趣的:(微服务,ServiceStage,Servicecomb,Go开发,Go部署)