文档首页 > > 快速入门>

Go微服务开发部署

Go微服务开发部署

分享
更新时间:2021/02/08 GMT+08:00

Go Chassis是一个开源社区提供的微服务开发框架,基于该框架可以快速进行业务微服务化开发与部署。

前提条件

  • 已了解如何购买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/go-chassis/go-chassis v1.8.3
    github.com/go-chassis/go-chassis-cloud v0.2.0
)

如果由于网络问题导致依赖包无法下载,请使用公共代理。

export GOPROXY=https://goproxy.io

Go语言开发环境参照官方文档

服务运行原理

图1 服务运行原理

图1所示:

  • consumer与provider是开发者开发出的微服务。
  • 开发者到控制台购买微服务引擎,并将服务连接到引擎上使用。
  • 服务通过注册到Service center中让别的服务发现地址以实现通信,通过配置管理服务管理配置项。

本地开发

Go Chassis提供编写HTTP服务编写gRPC服务两种开发模式,分别对应不同的通信协议。

在完成本地开发后,可以使用ServiceStage进行部署、托管与运维。

使用ServiceComb微服务引擎

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

  1. 配置AK/SK。

    在Go Chassis配置文件中设置AK/SK,才可访问微服务引擎。AK/SK的获取请参考如何获取AK/SK?

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

    cse:
      credentials:
        accessKey: #配置AK
        secretKey: #配置SK
  2. 连接引擎。

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

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

    配置文件conf/chassis.yaml,指定引擎名称(如何获取请参考查看微服务引擎接入地址,专业版名为"default"),配置项如下:

    servicecomb:
      engine:
        name:test-engine

    Go Chassis将自动发现所需服务的Endpoint,并自动配置。

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

    微服务可以将服务指标上报给Dashboard服务,请参考微服务仪表盘

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

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

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

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

创建并部署应用

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

部署应用组件前,需要:

  • 已经参考创建应用创建应用。
  • 已经参考创建环境创建环境,环境包含CCE集群、ELB及微服务引擎等资源。
  1. 打包payment和order的镜像。

    首先需要选择上传到某个Region的SWR软件仓库,比如swr.cn-north-1.myhuaweicloud.com。再在该Region的软件中心创建组织,比如demo,具体参考创建组织

    打包镜像命令示例如下:

    cd order/src/ 
    sudo docker build . -t swr.cn-north-1.myhuaweicloud.com/demo/ordernet:1.0
    cd payment/src/ 
    sudo docker build . -t swr.cn-north-1.myhuaweicloud.com/demo/paymentnet:1.0

  2. 上传镜像到SWR软件仓库,请参考上传镜像
  3. 创建payment组件,请参考创建微服务组件

    1. “选择运行时”:选择“Docker”
    2. “选择框架/服务网格”:选择“Go Chassis”
    3. “组件名称”:输入“payment”

  4. 部署payment组件,请参考部署组件

    1. “实例数量”:设置为1。
    2. “镜像”:单击“选择镜像”,选择2中上传的payment组件镜像。
    3. 其他参数使用默认配置。

  5. 创建order组件,请参考创建微服务组件

    1. “选择运行时”:选择“Docker”
    2. “选择框架/服务网格”:选择“Go Chassis”
    3. “组件名称”:输入“order”

  6. 部署order组件,请参考部署组件

    1. “实例数量”:设置为1。
    2. “镜像”:单击“选择镜像”,选择2中上传的order组件镜像。
    3. “公网访问”:开启公网访问,“监听端口”设置为5000。
    4. 其他参数使用默认配置。

验证结果

等待2个组件全部部署完成,在浏览器地址栏输入http://order组件访问地址/v1/order,返回如下字符串:

order info payment info

访问地址获取方法:

  1. 登录ServiceStage,选择“应用管理 > 应用列表”。
  2. 单击应用名称,在“环境视图”中单击组件名称进入“概览”页。
  3. 单击“访问方式”,在“访问地址”列获取访问地址。

更多功能

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

- 运维

- 运行时治理

- 动态配置管理

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问
{{site}}{{lan}}
{{site}}{{language}}