5分钟轻松打造应对流量洪峰的稳定商城交易系统
1. 实验资源方式介绍及开始实验
云起实验室实验资源方式介绍
云起实验室支持实验资源体验、领取免费试用额度、个人账户资源三种实验资源方式。
- 实验资源体验
- 资源归属于客户,仅供本次实验使用
- 实验结束后,实验资源及实验记录将被释放。
- 资源创建过程需要3~5分钟(视资源不同开通时间有所差异,ACK等资源开通时间较长)。完成实验资源的创建后,在实验室页面左侧导航栏中,单击云产品资源列表,可查看本次实验资源相关信息(例如子用户名称、子用户密码、AK ID、AK Secret、资源中的项目名称等)。
- 说明:实验环境一旦开始创建则进入计时阶段,建议学员先基本了解实验具体的步骤、目的,真正开始做实验时再进行创建。
- 领取免费试用额度
- 使用个人账号开通试用,平台仅提供手册参考。
- 所有实验操作将保留至您的账号,请谨慎操作。
- 在实验页面下方卡片会展示本实验支持的试用规格,可以选择你要试用的云产品资源进行开通。您在实验过程中,可以随时用右下角icon唤起试用卡片。阿里云支持试用的产品列表、权益及具体规则说明请参考开发者试用中心。
- 说明:试用云产品开通在您的个人账号下,并占用您的试用权益。如试用超出免费试用额度,可能会产生一定费用。
- 个人账户资源
- 使用您个人的云资源进行操作,资源归属于个人。
- 所有实验操作将保留至您的账号,请谨慎操作。
- 平台仅提供手册参考,不会对资源做任何操作。
- 说明:使用个人账户资源,在创建资源时,可能会产生一定的费用,请您及时关注相关云产品资源的计费概述。
准备开始实验
在实验开始前,请您选择其中一种实验资源,单击确认开启实验。
说明:每个实验所支持的实验资源方式都不相同,实验不一定能满足有三种实验资源方式,请根据实验的实际情况,进行选择。
2. 领取免费试用资源
实验前必看!
- 如果您的阿里云主账号符合开通云消息队列RocketMQ免费试用的资格,建议您开通免费试用云消息队列RocketMQ,云消息队列RocketMQ标准版实例只能免费试用1个月,试用期结束后您可以选择释放实例或一键转包年包月,否则超过有效期的部分将会按照按量付费方式进行计费,具体计费详情,请参见计费概述。
- 如果您的阿里云主账号符合开通Serverless应用引擎SAE免费试用的资格,建议您开通免费试用Serverless应用引擎SAE,Serverless应用引擎SAE提供CPU 48000核*分钟(即800核*时)、内存96000 GiB*分钟(即1600GiB*时),有效期3个月的免费试用额度。超出有效期和试用额度的部分均会计入按量付费。更多关于试用额度的信息,请参见试用额度。
- 如果您的阿里云账号只能领取部分免费试用产品,请您领取符合免费试用资格的产品,然后进入实验,不满足免费试用资格的产品将会使用个人账户资源进行创建,并会产生一定的费用,请您及时关注账户扣费。
- 本教程会使用到负载均衡SLB,具体计费详情,请参见负载均衡SLB费用计算器。
- 为了避免资源浪费并造成账号扣费的情况,请严格按照本文提供的参数进行配置。在实验完成之后,请您及时删除或禁用压测任务。
- 在实验开始前,请您选择开通免费试用。
- 开通云消息队列RocketMQ免费试用。
2.1 在实验室页面下方,选择云消息队列RocketMQ,单击立即试用。
2.2 在云消息队列RocketMQ面板,根据如下说明进行参数配置,未提及的参数保持默认即可,选中服务协议,然后单击立即试用。
配置参数 |
本教程取值 |
说明 |
地域和可用区 |
华东1(杭州) |
云消息队列 RocketMQ 版实例所属的地域。 |
VPC ID |
vpc-bp1ov****** |
在下拉列表中选择已创建的VPC。 创建的VPC所属地域需要与本步骤的地域和可用区相同。 |
VSwitch ID |
vsw-bp14j****** |
在下拉列表中选择已创建的交换机。 创建的交换机所属地域需要与本步骤的地域和可用区相同。 |
公网访问类型 |
关闭 |
本教程以VPC接入云消息队列RocketMQ版实例为例,因此需要关闭公网访问。云消息队列RocketMQ版免费试用不包含公网,若您开启公网访问,会产生一定的费用。 |
2.3 完成试用申请后,系统将会自动创建实例。您可以访问RocketMQ实例列表,在实例列表页面查看实例,实例创建需要约1~3分钟,当实例状态为运行中时,即可正常使用。
- 开通Serverless应用引擎SAE免费试用。
3.1 在实验室页面下方,选择Serverless应用引擎SAE,单击立即试用。
3.2 在Serverless应用引擎SAE面板,选中服务协议,然后单击立即试用。
3.3 在开通成功面板,单击Serverless右侧的控制台。
3.4 在SAE控制台中
- 如果SAE控制台显示领取套餐并开通按量付费的服务未开通提示,您无需任何操作,仅需等待一段时间(约7秒)即可直接使用SAE的相关功能。
- 如果您未创建服务关联角色,登录SAE控制台时会弹出欢迎使用Serverless应用引擎SAE对话框,单击确认创建即可完成服务关联角色的创建。自此,已完成SAE免费试用的领取和开通。
- 领取完免费试用后,返回资源领取界面,单击我已开通,进入实验。
说明:如果您的阿里云账号只能领取部分免费试用产品,请您领取符合免费试用资格的产品,然后进入实验,不满足免费试用资格的产品将会使用个人账户资源进行创建,并会产生一定的费用,请您及时关注账户扣费。
3. 创建实验资源
- 开通消息队列RocketMQ版。
说明:
- 如果您选择的免费试用,并且在上一步骤中领取了消息队列RocketMQ版免费试用,请您跳过本步骤,直接进行下一小节操作。
- 如果您选择的免费试用,但是您的阿里云主账号没有资格领取消息队列RocketMQ版的免费试用,请您根据如下操作,开通消息队列RocketMQ版,进行按量付费,会产生后付费账单,具体计费详情,请参见计费概述。
- 如果您选择的个人资源,请您根据如下操作,开通消息队列RocketMQ版,进行按量付费,会产生后付费账单,具体计费详情,请参见计费概述。
1.1 前往消息队列RocketMQ版控制台。
1.2 在左侧导航栏,单击实例列表。
1.3 在实例列表页面,单击创建实例。
1.4 在创建RocketMQ实例面板,付费方式选择按量付费,单击确定。
1.5 在RocketMQ实例购买面板,参考如下说明配置参数,未提及的配置保持默认或按需修改,然后选中服务协议,单击立即购买。
说明:本试用教程以下列的配置信息为例,实际操作时,建议根据您的实际业务体量和需求选择。
参数说明:
参数 |
取值示例 |
主系列类型 |
标准版 |
子系列类型 |
集群高可用版本(生产环境推荐) |
消息收发计算规格 |
rmq.s2.2xlarge |
VPC ID |
选择您的VPC的ID,需要与云服务器ECS的VPC的ID相同。 重要:云消息队列RocketMQ版实例创建后,选择的VPC不支持变更。若要修改关联的VPC,您需要先释放已购买的云消息队列RocketMQ版实例,再重新购买。 |
VSwitch ID |
选择您的交换机的ID,需要与云服务器ECS的交换机的ID相同。 重要:云消息队列RocketMQ版实例创建后,选择的交换机不支持变更。若要修改关联的交换机,您需要先释放已购买的云消息队列RocketMQ版实例,再重新购买。 |
公网访问类型 |
选择关闭。 说明:本文以使用VPC接入云消息队列RocketMQ版服务端场景为例,公网访问默认关闭;若您需要通过公网接入云消息队列RocketMQ版,您需要将公网访问类型设置为开启。 |
资源组 |
默认资源组 |
1.6 在实例列表页面,等待状态变为运行中后,即可使用该消息队列RocketMQ版实例。
- 开通Serverless应用引擎SAE服务并授权。
说明:
- 如果您选择的免费试用,并且在上一步骤中领取了Serverless 应用引擎SAE的免费试用,请您跳过本步骤,直接进行下一小节操作。
- 如果您选择的免费试用,但是您的阿里云主账号没有资格领取Serverless 应用引擎 SAE的免费试用,请您根据如下操作,开通Serverless应用引擎SAE服务并授权,开通后可以按照实际使用量进行计费,详情请参见计费概述。
- 如果您选择的个人资源,请您根据如下操作,开通Serverless应用引擎SAE服务并授权,开通后可以按照实际使用量进行计费,详情请参见计费概述。
- 如您已开通Serverless应用引擎SAE服务并授权,请您跳过本步骤,直接进行下一小节操作。
2.1 登录SAE产品主页。
2.2 单击免费开通。
2.3在Serverless应用引擎页面,选中Serverless应用引擎服务协议,并单击立即开通。
2.4 开通完成后,系统会弹出恭喜,开通成功!对话框。单击管理控制台,在控制台首页弹出的安全授权提示对话框,单击立即授权。
2.5 在云资源访问授权页面,单击同意授权。
说明:SAE支持SLR的自动创建。如果您未创建SLR,那么登录SAE控制台时会弹出欢迎使用Serverless应用引擎SAE对话框,单击确认创建即可完成SLR的创建。
4. 创建RocketMQ Topic、Group资源
本步骤以5.x版本的RocketMQ实例为例,创建用于收发消息的Topic和Group资源,仅介绍关键配置项,其余配置项保持默认即可。更多信息,请参见创建实例。
- 前往消息队列RocketMQ版控制台。
- 在左侧导航栏中,单击实例列表。
- 在实例列表页面,找到您创建的消息队列RocketMQ版实例,单击实例ID。
- 在左侧导航栏中,单击Topic管理。
- 在Topic管理页面,单击创建Topic。
- 在创建Topic面板,根据如下说明配置参数,然后单击确定。
- 主题名称:输入Topic名称,例如demo_topic。
- 消息类型:本实验是基本消息收发体验,请选择普通消息。
- 描述:输文字描述,用于标识这个topic的作用,例如test。
- 在左侧导航栏中,单击Group管理。
- 在Group管理页面,单击创建Group。
- 在创建Group面板,根据如下说明配置参数,然后单击确定。
- GroupID:输入Group名称,例如demo_group。
- 投递顺序性:本实验是基本消息收发体验,请选择并发投递。
- 描述:输文字描述,用于标识这个group的作用,例如test。
5. SAE部署
通过SAE部署服务前,您需要下载以下Demo:
- frontend-2.0.0-SNAPSHOT.jar
- cartservice-provider-2.0.0-SNAPSHOT.jar
- productservice-provider-2.0.0-SNAPSHOT.jar
本步骤部署应用时仅介绍关键配置项,其余配置项保持默认即可。
- 前往SAE控制台。
- 在左侧导航栏中,选择命名空间(环境)。
- 在命名空间页面,单击创建命名空间。
- 在创建命名空间面板,命名空间名称输入为test,命名空间ID输入为test,单击确定。
- 在左侧导航栏中,选择应用管理>应用列表。
- 在创建应用页面,配置相关信息。
- 在应用基本信息配置向导,根据如下说明配置信息,然后单击下一步:应用部署配置。
配置项 |
说明 |
应用名称 |
输入frontend。 |
专有网络配置 |
选择自定义配置。 |
应用实例数 |
输入1。 |
命名空间 |
选择test命名空间。 VPC选择与RocketMQ实例相同的VPC。 |
vSwitch |
vSwitch选择与RocketMQ实例相同的vSwitch。 |
安全组 |
选择一个安全组。 如果您没有可用的安全组,请您单击创建安全组,创建新的安全组。 |
VCPU |
选择2Core。 |
内存 |
选择4GiB。 |
- 在应用部署配置配置向导,根据如下说明配置信息,然后单击下一步:确认规格。
配置项 |
说明 |
技术栈语言 |
选择Java。 |
应用部署方式 |
选择JAR包部署。 |
Java环境 |
选择Open JDK 8。 |
上传JAR包 |
在配置JAR包区域,上传已准备的frontend JAR包。 |
启动命令设置 |
展开启动命令设置区域,输入启动命令的options设置。 -XX:+UseContainerSupport -XX:InitialRAMPercentage=70.0 -XX:MaxRAMPercentage=70.0 |
- 在确认规格配置向导,查看您所创建应用的详细信息以及费用配置情况,然后单击确认创建。
- 页面会跳转至创建完成配置向导,您可以单击应用详情页进入基本信息页面。
- 重复步骤5~6,创建其余两个应用cartservice、productservice。
说明:在创建productservice应用时,您需要在启动命令设置区域输入如下启动命令的options设置,并修改Dmq.accessKey、Dmq.secretKey、Dmq.endpoints、Dmq.topic和Dmq.consumer.group参数值,Dmq.accessKey、Dmq.secretKey和Dmq.endpoints参数值需要填写RocketMQ实例的基本信息页面的TCP协议接入点区域的VPC专有网络的接入点和网络信息,Dmq.topic和Dmq.consumer.group参数值需要填写您创建RocketMQ实例的Topic和Group的名称。
-XX:+UseContainerSupport -XX:InitialRAMPercentage=70.0 -XX:MaxRAMPercentage=70.0 -Dmq.accessKey=yy8g*******573 -Dmq.secretKey=buu5q6*****Fmb0b -Dmq.endpoints=rmq-cn-ua****8x0e.cn-hangzhou.rmq.aliyuncs.com:8080 -Dmq.topic=order -Dmq.consumer.group=GID_order
RocketMQ实例的VPC专有网络的接入点和网络信息在如下图位置获取。
- 为后续压测时保证应用能及时进行弹性伸缩,需要分别为frontend应用、producetservice应用配置弹性策略。
- 在应用列表页面,单击frontend应用。
- 在基本信息页面的实例部署信息页签,单击添加弹性策略。
- 在添加弹性策略面板,根据如下说明配置参数,然后单击确认。
配置项 |
说明 |
指标类型 |
选择监控指标策略。 |
策略名称 |
输入metric。 |
触发条件 |
|
实例数设置 |
|
- 在基本信息页面的实例部署信息页签,单击metric策略右侧操作列下的启用。
- 在启用弹性策略对话框中,单击确认。
- 返回应用列表页面,单击producetservice应用。
- 在基本信息页面的实例部署信息页签,单击添加弹性策略。
- 在添加弹性策略面板,根据如下说明配置参数,然后单击确认。
配置项 |
说明 |
指标类型 |
选择监控指标策略。 |
策略名称 |
输入metric。 |
触发条件 |
|
实例数设置 |
|
- 在基本信息页面的实例部署信息页签,单击metric策略右侧操作列下的启用。
- 在启用弹性策略对话框中,单击确认。
6. 访问应用
本步骤会使用到负载均衡SLB,具体计费详情,请参见负载均衡SLB费用计算器。
- 在应用列表页面,单击frontend应用。
- 在frontend应用的基本信息页面的应用访问设置区域,单击添加公网SLB访问。
- 在添加公网访问SLB对话框,选择HTTP协议,HTTP端口输入80,容器端口输入9999,然后单击确认。
添加完成后,您可以在公网访问地址栏看到该公网SLB的IP地址和端口。
- 在浏览器中以slbip:port的格式输入地址并回车,访问微服务商城应用。
7. 商城体验
- 在商城首页,选择一个商品,单击购买。
- 在商品详情页面,单击添加至购物车。
- 填写购买信息后,选中同步或异步,然后提交订单。
- 同步:此时后台将进行同步处理,等待几秒后返回处理结果。
- 异步:此时会立即返回结果,后台将订单信息写入消息队列中进行异步消费处理。
- 使用异步提交订单后,您可在消息队列RocketMQ实例的消息轨迹页面,查询方式选择按Topic查询,Topic选择demo_topic,然后单击查询。您即可查看到订单信息在消息队列中的轨迹。
- 在左侧导航栏中,单击仪表盘,然后在生产者区域,单击demo_topic,您即可查看到一些监控指标、
说明:如果您的缺少仪表盘相关角色,在左侧导航栏中单击仪表盘后,在服务关联角色对话框中单击授权即可。
8. 压力测试
在下单页面,选择同步(即不开启消息)或异步(即开启消息)。
说明:
- 不开启消息:将通过SAE弹性能力来应对大流量场景。
- 开启消息:通过消息队列进行“削峰填谷”,以及异步处理的方式来保证应用稳定性。
- 选择“不开启消息”
- 在商城页面,单击右上角的压力测试,然后不开启消息,单击开始压测,在SAE应用的基础监控页面,观察应用指标变化。
- 您可以看到应用CPU资源即将耗尽,应用开始进行弹性扩容,请求耗时大幅下降。
- 选择“开启消息”
- 在商城页面,单击右上角的压力测试,然后开启消息,单击开始压测,开始压测,可以看到请求响应很快就返回。
- SAE应用开始自动缩容。
- 在目标RocketMQ实例的仪表盘页面,观察消息情况。
9. 清理及后续
云消息队列RocketMQ版
本教程使用的标准版实例只能免费试用1个月。试用期结束后您可以选择释放实例或一键转包年包月,否则超过有效期的部分将会按照按量付费方式进行计费,具体计费详情,请参见计费概述。
- 如果您无需使用云消息队列 RocketMQ 版,请按照如下操作及时清理和释放资源。
- 登录云消息队列RocketMQ版控制台,在左侧导航栏选择实例列表。
- 在目标试用实例所在的操作列选择更多>释放。
- 在弹出的对话框中单击确定。
- 如果您需要继续使用云消息队列 RocketMQ 版,可以将该试用实例转为包年包月计费类型。
- 登录云消息队列RocketMQ版控制台,在左侧导航栏选择实例列表。
- 在目标试用实例所在的付费类型列选择转包年包月。
- 按照界面提示完成购买。
Serverless应用引擎SAE
Serverless应用引擎SAE提供CPU 48000核*分钟(即800核*时)、内存96000 GiB*分钟(即1600GiB*时),有效期3个月的免费试用额度。超出有效期和试用额度的部分均会计入按量付费。更多关于试用额度的信息,请参见试用额度。完成教程后,请参考以下场景处理SAE的资源:
- 如果无需使用SAE,请登录SAE控制台,在左侧导航栏,选择应用管理 > 应用列表,在应用列表页面,找到目标应用并单击应用名称,在基本信息页面,选择删除应用>删除,按照界面提示删除资源。
- 如果需要继续使用SAE,请注意用量,确保账户不要欠费。
负载均衡SLB
SLB产品属于额外计费项,不属于SAE计费项。完成教程后,请参考以下场景清理对应资源:
- 如果无需继续使用SLB,并且SAE的应用未解绑或未修改已绑定的SLB实例,则释放SAE应用时SLB实例会自动释放。
- 如果无需继续使用SLB,并且SAE的应用解绑或修改已绑定的SLB实例,此时SLB实例依旧在运行中,因此,SLB产品仍处于计费状态。您需要手动释放SLB实例后才会停止计费。请登录负载均衡控制台,根据界面提示删除资源。
- 如果需要继续使用SLB,请注意用量,确保账户不要欠费。
10. 清理及后续
云消息队列RocketMQ版
- 如果您无需使用云消息队列RocketMQ 版,请按照如下操作及时清理和释放资源。
- 登录云消息队列RocketMQ版控制台,在左侧导航栏选择实例列表。
- 在目标试用实例所在的操作列选择更多>释放。
- 在弹出的对话框中单击确定。
- 如果您需要继续使用云消息队列RocketMQ 版,请及时关注账号扣费情况。
Serverless应用引擎SAE
- 如果无需使用SAE,请登录SAE控制台,在左侧导航栏,选择应用管理 > 应用列表,在应用列表页面,找到目标应用并单击应用名称,在基本信息页面,选择删除应用>删除,按照界面提示删除资源。
- 如果需要继续使用SAE,请注意用量,确保账户不要欠费。
负载均衡SLB
SLB产品属于额外计费项,不属于SAE计费项。
- 如果无需继续使用SLB,并且SAE的应用未解绑或未修改已绑定的SLB实例,则释放SAE应用时SLB实例会自动释放。
- 如果无需继续使用SLB,并且SAE的应用解绑或修改已绑定的SLB实例,此时SLB实例依旧在运行中,因此,SLB产品仍处于计费状态。您需要手动释放SLB实例后才会停止计费。请登录负载均衡控制台,根据界面提示删除资源。
- 如果需要继续使用SLB,请注意用量,确保账户不要欠费。
实验地址:https://developer.aliyun.com/adc/scenario/ae70fdeedb924ceb86bb2dbcaadd6963