1 概述

华为云CAE(Cloud Application Engine云应用引擎)是一个面向WEB、微服务应用的Serverless托管服务,提供极速部署、极低成本、极简运维的一站式应用托管方案。支持从源码、软件包、镜像包快速发布应用,秒级弹性伸缩、按量付费。可做到基础设施免运维,根据可观测的运行指标对应用进行生命周期管理。

在这里插入图片描述
官方文档:

https://support.huaweicloud.com/productdesc-cae/cae_01_0001.html

2 环境

微服务有api-gateway、consumer、provider。

2.1 准备容器镜像

将以下容器镜像推送到你的华为云SWR实例中:

swr.cn-south-1.myhuaweicloud.com/migrator/spring-cloud-api-gateway:latest
swr.cn-south-1.myhuaweicloud.com/migrator/spring-cloud-consumer-nacos-demo:latest
swr.cn-south-1.myhuaweicloud.com/migrator/spring-cloud-provider-nacos-demo:latest

2.2 准备华为云负载均衡器ELB

ELB是用于暴露部署在CAE环境里的容器,在本文就是api-gateway服务。

在这里插入图片描述

2.3 准备华为云APM应用

spring cloud微服务容器使用java探针,将调用链信息上传到华为云托管的APM服务端。在此处新建一个APM应用即可。

在这里插入图片描述

2.4 准备华为云托管版nacos服务

在这里插入图片描述


3 部署

3.1 api-gateway服务部署

3.1.1 创建组件

在这里插入图片描述

3.1.2 配置组件

  • 配置健康检查:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 配置负载均衡器:
    在这里插入图片描述

  • 配置APM:
    在这里插入图片描述

  • 配置nacos

在这里插入图片描述

  • 配置环境变量
    将环境变量NACOS_SERVER设置成托管版的nacos实例的内网域名,如下图:
    在这里插入图片描述
  • 配置负载均衡器
    负载均衡用于暴露api-gateway服务,以便外界(例如一台独立的ECS)进行统一访问。
    在这里插入图片描述

3.1.3 启动组件

[ 组件配置 ] --> 选择组件 --> [ 生效配置 ]。
[ 组件实例] --> [ 启动 ]。

3.2 provider服务部署

3.2.1 创建组件

在这里插入图片描述

3.2.2 配置组件

  • 配置健康检查
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 配置APM:
    在这里插入图片描述

  • 配置nacos

在这里插入图片描述

  • 配置环境变量
    将环境变量NACOS_SERVER设置成托管版的nacos实例的内网域名,如下图:
    在这里插入图片描述

3.2.3 启动组件

启动组件
[ 组件配置 ] --> 选择组件 --> [ 生效配置 ]。
[ 组件实例] --> [ 启动 ]。

3.3 consumer服务部署

3.3.1 创建组件

在这里插入图片描述

3.3.2 配置组件

  • 配置健康检查
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 配置APM:
    在这里插入图片描述

  • 配置nacos

在这里插入图片描述

  • 配置环境变量
    将环境变量NACOS_SERVER设置成托管版的nacos实例的内网域名,如下图:
    在这里插入图片描述

3.3.3 启动组件

启动组件
[ 组件配置 ] --> 选择组件 --> [ 生效配置 ]。
[ 组件实例] --> [ 启动 ]。

3.4 部署结果

在CAE控制台,可以看见组件部署成功:
在这里插入图片描述

在托管的nacos实例中,可以看见微服务已完成注册。
在这里插入图片描述

在APM服务中,可以看见JAVA探针成功将数据回传到服务端。
在这里插入图片描述


4 测试

在相同VPC下开启一台ECS,浏览器访问api-gateway服务的接口/consumer//consumer/call,可见得到正确响应:

在这里插入图片描述
APM工具中也能看见调用链路:
在这里插入图片描述

5 小结

本文介绍将spring cloud服务部署在华为云CAE中,CAE屏蔽了kubernetes中的许多概念,对于未上kubernetes但已容器化的客户是一种明显优势。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐