更新时间:2024-11-13 GMT+08:00

源码部署微服务

业务场景

基于ServiceStage可以方便快捷的将微服务部署到容器(如CCE)、虚拟机(如ECS),同时支持源码部署、jar/war包部署或docker镜像包部署。同时,ServiceStage支持Java、PHP、Node.js、Python等多种编程语言应用的完全托管,包括部署、升级、回滚、启停和删除等。

本实践中使用了Java开发的后台组件和Node.js开发的前台组件。

用户故事

在本实践中,您可以通过容器部署的方式部署应用并将微服务实例注册到ServiceComb引擎中,weathermap应用需要创建以下组件:
  1. 前台组件:weathermapweb,基于Node.js语言开发的界面。
  2. 后台组件:weather、fusionweather、forecast、edge-service,基于Java语言开发。

微服务部署有以下几个操作过程:

  1. 创建并部署后台应用组件
  2. 设置edge-service组件访问方式
  3. 创建并部署前台组件
  4. 确认部署结果
  5. 添加访问方式
  6. 访问应用

创建并部署后台应用组件

此处需要创建并部署4个应用组件:weather、forecast、fusionweather、edge-service,对应后台构建任务生成的4个软件包。

  1. 登录ServiceStage控制台。
  2. 单击“应用管理”,进入“应用管理”页面。
  3. 单击创建应用时创建的应用名称(例如:weathermap)“操作”栏的“新增组件”。
  4. “基本信息”区域,参考下表设置必填组件基本信息,其余参数保持默认。

    参数

    说明

    组件名称

    输入对应的后台组件名称(例如:weather)。

    组件版本

    单击“自动生成”,默认以您单击“自动生成”时的时间来生成版本号。格式为yyyy.mmdd.hhmms,s取时间戳中秒数的个位值。例如:时间戳为2022.0803.104321,则版本号为2022.0803.10431。

    所属环境

    选择创建环境时创建的环境(例如:env-test)。

    所属应用

    选择创建应用时创建的应用(例如:weathermap)。

  5. “组件包”区域,参考下表设置必填组件包参数,其余参数保持默认。

    参数

    说明

    技术栈

    组件技术栈类型选择Java。

    源码/软件包

    1. 选择“源码仓库”
    2. 选择“GitHub”
    3. “授权信息”选择设置GitHub仓库授权时创建的授权信息。
    4. “用户名/组织”选择注册GitHub账号并复刻天气预报源码时登录您的GitHub使用的用户名。
    5. “仓库名称”选择已Fork到您的GitHub下的天气预报源码仓库的名称,例如:weathermap。
    6. “分支”选择“master”

  6. “构建”区域,设置必填构建参数。

    1. “编译命令”:保持默认。
    2. “Dockerfile地址”:参考下表设置。

      组件名称

      Dockerfile地址

      weather

      ./weather/

      forecast

      ./forecast/

      fusionweather

      ./fusionweather/

      edge-service

      ./edge-service/

    3. “组织”:选择创建组织时创建的组织名称。
    4. “构建环境”:选择“使用当前环境构建”
    5. 其余参数,保持默认。
    图1 设置构建参数

  7. 单击“下一步”
  8. “资源”区域,参考下表设置各组件“实例数”,其余参数设置保持默认。

    组件名称

    实例数

    weather

    2

    forecast

    1

    fusionweather

    1

    edge-service

    1

  9. 绑定ServiceComb引擎。

    • 组件部署以后,微服务会注册到绑定的ServiceComb引擎。
    • 所有组件需要注册到同一个ServiceComb引擎,才能互相发现。
    1. 选择云服务配置 > 微服务引擎
    2. 单击“绑定微服务引擎”
    3. 选择当前环境下已纳管的ServiceComb引擎专享版。
    4. 单击“确定”

  10. 单击“创建并部署”

设置edge-service组件访问方式

  1. 单击左上角,返回“应用管理”页面。
  2. 单击创建应用时创建的应用名称(例如:weathermap),进入“应用概览”页。
  3. “组件列表”,单击edge-service所在行“外部访问地址”列的“设置”,进入“访问方式”页面。
  4. 单击“TCP/UDP路由配置”区域的“添加服务”,参考下表设置参数。

    参数

    说明

    服务名称

    保持默认。

    访问方式

    选择“公网访问”。

    访问类型

    选择“弹性IP”

    服务亲和

    保持默认。

    协议

    选择TCP。

    容器端口

    填写3010。

    访问端口

    选择“自动生成”

    图2 设置edge-service组件访问方式

  5. 单击“确定”,生成访问地址。

创建并部署前台组件

  1. 单击左上角,返回“应用管理”页面。
  2. 单击创建应用时创建的应用名称(例如:weathermap)“操作”栏的“新增组件”。
  3. “基本信息”区域,参考下表设置必填组件基本信息,其余参数保持默认。

    参数

    说明

    组件名称

    输入前台组件的名称:weathermapweb。

    组件版本

    单击“自动生成”,默认以您单击“自动生成”时的时间来生成版本号。格式为yyyy.mmdd.hhmms,s取时间戳中秒数的个位值。例如:时间戳为2022.0803.104321,则版本号为2022.0803.10431。

    所属环境

    选择创建环境时创建的环境(例如:env-test)。

    所属应用

    选择创建应用时创建的应用(例如:weathermap)。

  4. “组件包”区域,参考下表设置必填组件包参数,其余参数保持默认。

    参数

    说明

    技术栈

    组件技术栈类型选择Node.js。

    源码/软件包

    1. 选择“源码仓库”
    2. 选择“GitHub”
    3. “授权信息”选择设置GitHub仓库授权时创建的授权信息。
    4. “用户名/组织”选择注册GitHub账号并复刻天气预报源码时登录您的GitHub使用的用户名。
    5. “仓库名称”选择已Fork到您的GitHub下的天气预报源码仓库的名称,例如:weathermap。
    6. “分支”选择“master”

  5. “构建”区域,设置必填构建参数。

    1. “编译命令”:保持默认。
    2. “Dockerfile地址”:参考下表设置。

      组件名称

      Dockerfile地址

      weathermapweb

      ./weathermapweb/

    3. “组织”:选择创建组织时创建的组织名称。
    4. “构建环境”:选择“使用当前环境构建”
    5. 其余参数,保持默认。

  6. 单击“下一步”,添加环境变量。

    1. 选择容器配置 > 环境变量
    2. 单击“添加环境变量”,参考下表添加环境变量。

      类型

      变量名称

      变量/变量引用

      手动添加

      SERVICE_ADDR

      设置edge-service组件访问方式中生成的访问地址。

  7. 单击“创建并部署”

确认部署结果

  1. 单击左上角,返回“应用管理”页面。
  2. 选择微服务引擎 > 微服务目录
  3. 在微服务引擎下拉列表选择部署了微服务应用的ServiceComb引擎。
  4. 在“微服务列表”页签的“全部应用”下拉列表中选择创建应用时创建的应用名称(例如:weathermap)。

    如果各微服务实例数如下表所示,则部署成功。

    组件名称

    实例数

    weather

    2

    forecast

    1

    fusionweather

    1

    edge-service

    1

添加访问方式

  1. 单击“应用管理”
  2. 单击创建应用时创建的应用名称(例如:weathermap),进入“应用概览”页。
  3. “组件列表”,单击weathermapweb所在行“外部访问地址”列的“设置”,进入“访问方式”页面。
  4. 单击“TCP/UDP路由配置”区域的“添加服务”,参考下表设置参数。

    参数

    说明

    服务名称

    保持默认。

    访问方式

    选择“公网访问”。

    访问类型

    选择“弹性IP”

    服务亲和

    保持默认。

    协议

    选择TCP。

    容器端口

    填写3000。

    访问端口

    选择“自动生成”

    图3 添加访问方式

  5. 单击“确定”,生成访问地址。

    图4 访问地址

访问应用

  1. 单击左上角,返回“应用管理”页面。
  2. 单击创建应用时创建的应用名称(例如:weathermap),进入“应用概览”页。
  3. “组件列表”,单击weathermapweb所在行“外部访问地址”列的外部访问地址。

    出现以下页面表明天气预报微服务应用部署成功。

    图5 应用部署成功
    • 该数据为实时数据。
    • 首次访问应用时,weather系统就绪需要一段时间。如果如上图所示页面没有出现,请持续刷新页面。