验证微服务应用

更新时间:
2025-01-02

验证微服务应用

软件工厂提供的集成验证平台和 RealEvo 集成开发环境中的 RealEvo-Simulator 虚拟机均预装了翼辉云原生运行时环境。用户无需进行环境搭建和部署等操作,即可快速进行微服务应用验证。本文将介绍如何配置验证环境、在 ECSM 添加节点、部署服务,并利用 vMessenger 进行 VSOA 通讯测试。

前提条件

操作步骤

步骤 1:配置验证环境

您可以按需选择虚拟机环境集成验证平台进行微服务应用的验证,下面将分别介绍如何配置 虚拟机环境集成验证平台环境

配置虚拟机环境

  1. 解压下载的 RealEvo-Simulator 虚拟机压缩文件,双击 RealEvo-Simulator.exe 打开虚拟机程序,启动后的界面如下图所示。下面以配置 x86-64 架构的虚拟机为例进行介绍。

  2. 在 RealEvo-Simulator 主界面下方,单击 Open,选择“vm/x64/x64.vm”文件,打开 x64 虚拟机操作界面。单击下方的 Setting,进入虚拟机配置界面。

  3. 在虚拟机配置界面中,单击 Virtual Network Adapter 右侧的 Create,进入虚拟网卡创建界面。

  4. 在虚拟网卡创建界面的 IP Address 处,设置虚拟网卡的 IP 地址与 SylixOS 系统默认网卡 IP 地址在同一网段(当前 SylixOS 系统默认网卡 IP 地址为 192.168.23.123),然后单击 OK,返回 x64 虚拟机操作界面。

  5. 在 x64 虚拟机操作界面,单击下方的 Start 启动虚拟机,启动后运行效果如下图所示。 虚拟机运行期间,不可关闭 SylixOS Terminal 窗口,以免关闭虚拟机。此时可以将此虚拟机作为计算节点添加至 ECSM,进行微服务部署与验证。

配置集成验证平台环境

下面介绍如何配置集成验证平台的网络环境。

  1. 通过串口连接集成验证平台后,执行ipconfig命令,查看该验证平台的设备名称及其默认 IP 地址。

  2. 执行vi /etc/ifparam.ini命令,按需修改验证平台的网络配置。ifparam.ini 文件的配置示例如下:

    [emac0]   --设备名称
    enable=1   --使能网口
    ipaddr=10.12.100.4  –-接口IP地址
    netmask=255.255.0.0  –-子网掩码
    gateway=10.12.0.1  --网关
    default=1   --当前接口是否是默认接口
    
  3. 配置完成后,按 ECS 键,并输入 :wq 保存退出。然后重启集成验证平台,此时可以使用修改后的 IP 地址将此验证平台添加至 ECSM 进行微服务部署与验证。

步骤 2:添加节点至 ECSM

  1. 双击电脑桌面的 ECSM 快捷图标,在 ECSM 顶部菜单栏中,单击帮助 > 打开环境变量,在本地资源管理器中打开环境变量文件夹 ecsm-app。

  2. 在 ecsm-app 文件夹中,打开config.yaml文件,参考如下方式添加环境变量 ECSM_REGISTRY_HOST 设置镜像仓库地址,以免容器启动时无法拉取镜像。您也可以参考 环境变量列表 添加其他环境变量,注意冒号后必须加一个空格。

    ECSM_REGISTRY_HOST: ${当前计算机 IP 地址}
    
  3. 返回 ECSM 主界面,左侧导航栏中,单击节点管理,在节点管理页面,单击左上角的注册,打开注册节点窗口。

  4. 在注册节点窗口,参考表 1 设置节点名称、IP 地址和密码等信息。

    表 1 注册节点参数说明
    参数 描述 示例
    名称节点的名称,支持自定义,名称不能重复example
    地址节点(即 步骤 1:配置验证环境 时设置的虚拟机或集成验证平台)的 IP 地址,相同 IP 地址的节点不可重复注册-
    密码节点上 ECSD 的连接密码。如果未设置密码,可随意输入字符串进行注册-
    使用加密选择使用 TLS 加密,ECSM 会为该节点生成一个安全证书,以保障节点的通信安全。目前暂不支持 TLS 加密,可不设置此选项-
  5. 单击提交,完成节点注册。平台会为节点自动分配固定的端口号。新注册的节点会显示在节点列表中。

步骤 3:部署 SylixOS App 微服务

  1. 在左侧导航栏中,单击部署管理 > 容器部署,在容器部署页面,单击左上角的新建,进入新建容器部署页面的基本信息界面。

  2. 在基本信息界面,参考表 2 设置相关参数,此处将镜像拉取策略设置为“总是拉取(Always)”,服务自动更新策略设置为“总是使用新镜像更新(Always)”,并单击下一步,进入选择节点界面。

    表 2 基本信息参数说明
    参数 描述 示例
    服务名称服务的名称,可以自定义,名称不能重复thermal_server
    使用镜像选择部署容器需要的镜像,包括 Linux 镜像和 SylixOS 镜像。两种镜像对应的节点和资源配置参数不同,Linux 镜像只能部署在 Linux 计算机节点上,SylixOS 镜像只能部署在 SylixOS 计算机节点上-
    镜像拉取策略预先设置镜像的拉取策略,各策略说明如下:
    • 总是拉取(Always):总是从 ECSM 镜像仓库拉取镜像
    • 若不存在则拉取(If Not Present):如果待部署节点本地有此镜像,则使用本地镜像;如果待部署节点本地没有此镜像,则从 ECSM 镜像仓库拉取
    • 从不拉取(Never):只使用待部署节点的本地镜像,从不向 ECSM 仓库拉取镜像
    总是拉取(Always)
    服务自动更新策略预先设置服务的自动更新策略,各策略说明如下:
    • 不自动更新(Never):从不自动更新镜像
    • 新镜像版本较大时更新(Larger):当与此镜像名称相同的新镜像被上传或 Push 到 ECSM 镜像仓库时,ECSM 将根据 Semantic Versioning 语义化版本规范对比两个镜像的版本大小,如果新镜像的版本较大,则自动更新服务,并将服务镜像替换为高版本的镜像
    • 总是使用新镜像更新 (Always):当与此镜像名称相同的新镜像被上传或 Push 到 ECSM 镜像仓库时,将自动使用新镜像更新服务
    总是使用新镜像更新 (Always)
    部署后运行服务设置部署完服务后是否自动运行服务-
  3. 在选择节点界面,单击静态选择,在选择节点下拉框选择要部署到的节点,并单击下一步,进入资源配置界面。

  4. 在资源配置页面,参考 Linux 镜像资源配置SylixOS 镜像资源配置 完成参数设置,此处需要打开 VSOA 配置开关,并配置服务密码和端口号,最后单击部署,开始服务部署。

  5. 部署完成后,进入容器部署详情页,可以查看此次容器部署的详细信息,并对整个服务或单个容器实例进行启动、停止、暂停、继续和销毁等操作。

  6. 单击顶部导航栏中的容器部署,返回容器部署主界面,新部署的服务会显示在服务列表中。此时,可以通过 vMessenger 工具验证 VSOA 通讯是否正常。

步骤 4:验证 VSOA 通讯

  1. 双击电脑桌面的 vMessenger 快捷图标,打开 vMessenger 主界面。确认当前 工作空间,按需新建、切换、修改或删除工作空间。

  2. 在左侧导航栏中,单击发布 / 订阅,在发布 / 订阅界面,单击新建集合,在新建集合对话框中,设置集合名称,并单击保存,完成集合新建。

  3. 在发布 / 订阅界面,右键单击要创建请求的集合,或鼠标悬停至要创建请求的集合并单击,选择新请求,打开新建请求对话框。

  4. 在新建请求对话框中,设置请求名称,并单击保存,打开请求详情窗口。

  5. 在请求详情窗口,设置请求 URL 为服务链接地址“10.12.XX.XX:5001/v1/thermal”,并设置客户端参数 passwd 为“123456”,单击连接,开始接收 VSOA 消息。

  6. 连接成功后,响应数据窗口将提示连接成功信息,并打印接收到的消息和其接收时间。至此,VSOA 通讯验证成功。

步骤 5:更新 SylixOS App 微服务

ECSM 支持服务自动更新策略。当微服务代码有更新时,您可以使用 RealEvo-IDE 重新编译、打包并上传镜像包至 ECSM,触发容器自动更新,从而快速实现功能验证。

  1. 在 RealEvo-IDE 中打开 开发微服务应用 时创建的 SylixOS App 工程代码文件 thermal_server.c,修改上报温度数值 "thermal_data" 为 36。
    static void *publish_thermal_thread (void *arg)
    {
       vsoa_url_t url;
       vsoa_payload_t payload;
       char param[100];
    
       url.url = "/v1/thermal";
       url.url_len = strlen(url.url);
    
       payload.data = NULL;
       payload.data_len = 0;
       payload.param = param;
    
       while (1) {
          sleep(1);
    
          if (!vsoa_server_is_subscribed(server, &url)) {
                continue;
          }
    
          payload.param_len = sprintf(param, "{\"thermal_data\": 36}");
          vsoa_server_publish(server, &url, &payload);
       }
    
       return  (NULL);
    }
    
  2. 选中 thermal_server 工程,单击菜单栏中的 🔨 进行编译,或单击右键选择 Build Project 编译工程。
  3. 参考 打包 SylixOS App 微服务镜像,打包新的容器镜像 thermal_server.tar
  4. 打包成功后,单击确定,进入容器推送设置界面。
  5. 在容器推送设置界面,按需设置远端仓库 URL 和登录用户名、密码等信息,单击 OK 进行上传。
  6. 因为 部署 SylixOS App 微服务 时设置的服务自动更新策略为“总是使用新镜像更新 (Always)”,故镜像上传成功后,服务会自动更新。如下图所示,服务状态为“部署中”。
  7. 在 vMessenger 请求窗口中,单击连接,重新连接 VSOA 请求,可以看到接收到的消息已经为更新后的内容。
文档内容是否对您有所帮助?
有帮助
没帮助