「5分钟打造应对流量洪峰的商城交易系统」实验步骤介绍

简介: 实验步骤介绍

1. 实验资源方式介绍及开始实验

云起实验室支持实验资源体验、领取免费试用额度、个人账户资源三种实验资源方式。

  • 实验资源体验
  • 资源归属于客户,仅供本次实验使用
  • 实验结束后,实验资源及实验记录将被释放。
  • 资源创建过程需要3~5分钟(视资源不同开通时间有所差异,ACK等资源开通时间较长)。完成实验资源的创建后,在实验室页面左侧导航栏中,单击云产品资源列表,可查看本次实验资源相关信息(例如子用户名称、子用户密码、AK ID、AK Secret、资源中的项目名称等)。
  • 说明:实验环境一旦开始创建则进入计时阶段,建议学员先基本了解实验具体的步骤、目的,真正开始做实验时再进行创建。

1693899807407-1d035781-4597-4d8a-a9d1-ba2f189c466e.png

  • 领取免费试用额度
  • 使用个人账号开通试用,平台仅提供手册参考。
  • 所有实验操作将保留至您的账号,请谨慎操作。
  • 在实验页面下方卡片会展示本实验支持的试用规格,可以选择你要试用的云产品资源进行开通。您在实验过程中,可以随时用右下角icon唤起试用卡片。阿里云支持试用的产品列表、权益及具体规则说明请参考开发者试用中心
  • 说明:试用云产品开通在您的个人账号下,并占用您的试用权益。如试用超出免费试用额度,可能会产生一定费用。

1693899807383-8b1652e2-2ed8-4b88-8f04-a24690d43a9a.png

  • 个人账户资源
  • 使用您个人的云资源进行操作,资源归属于个人。
  • 所有实验操作将保留至您的账号,请谨慎操作。
  • 平台仅提供手册参考,不会对资源做任何操作。
  • 说明:使用个人账户资源,在创建资源时,可能会产生一定的费用,请您及时关注相关云产品资源的计费概述。

准备开始实验

在实验开始前,请您选择其中一种实验资源,单击确认开启实验

说明:每个实验所支持的实验资源方式都不相同,实验不一定能满足有三种实验资源方式,请根据实验的实际情况,进行选择。

3.png

2. 领取免费试用资源

实验前必看!

  • 如果您的阿里云主账号符合开通云消息队列RocketMQ免费试用的资格,建议您开通免费试用云消息队列RocketMQ,云消息队列RocketMQ标准版实例只能免费试用1个月,试用期结束后您可以选择释放实例或一键转包年包月,否则超过有效期的部分将会按照按量付费方式进行计费,具体计费详情,请参见计费概述
  • 如果您的阿里云主账号符合开通Serverless应用引擎SAE免费试用的资格,建议您开通免费试用Serverless应用引擎SAE,Serverless应用引擎SAE提供CPU 48000核*分钟(即800核*时)、内存96000 GiB*分钟(即1600GiB*时),有效期3个月的免费试用额度。超出有效期和试用额度的部分均会计入按量付费。更多关于试用额度的信息,请参见试用额度
  • 如果您的阿里云账号只能领取部分免费试用产品,请您领取符合免费试用资格的产品,然后进入实验,不满足免费试用资格的产品将会使用个人账户资源进行创建,并会产生一定的费用,请您及时关注账户扣费。
  • 本教程会使用到负载均衡SLB,具体计费详情,请参见负载均衡SLB费用计算器。(本实验使用的SLB费用预估:实例费和流量费合计不超过0.1元)
  • 为了避免资源浪费并造成账号扣费的情况,请严格按照本文提供的参数进行配置。在实验完成之后,请您及时删除或禁用压测任务。
  1. 在实验开始前,请您选择开通免费试用

4.png

  1. 开通云消息队列RocketMQ免费试用。

2.1 在实验室页面下方,选择云消息队列RocketMQ,单击立即试用

5.png

2.2 在云消息队列RocketMQ面板,根据如下说明进行参数配置,未提及的参数保持默认即可,服务协议,然后单击立即试用

配置参数

本教程取值

说明

地域和可用区

华东1(杭州)

云消息队列 RocketMQ 版实例所属的地域。

VPC ID

vpc-bp1ov******

在下拉列表中选择已创建的VPC。

创建的VPC所属地域需要与本步骤的地域和可用区相同。

VSwitch ID

vsw-bp14j******

在下拉列表中选择已创建的交换机。

创建的交换机所属地域需要与本步骤的地域和可用区相同。

公网访问类型

关闭

本教程以VPC接入云消息队列RocketMQ版实例为例,因此需要关闭公网访问。云消息队列RocketMQ版免费试用不包含公网,若您开启公网访问,会产生一定的费用。

2.3 完成试用申请后,系统将会自动创建实例。您可以访问RocketMQ实例列表,在实例列表页面查看实例,实例创建需要约1~3分钟,当实例状态为运行中时,即可正常使用。

  1. 开通Serverless应用引擎SAE免费试用。

3.1 在实验室页面下方,选择Serverless应用引擎SAE,单击立即试用

6.png

3.2 在Serverless应用引擎SAE面板,服务协议,然后单击立即试用

3.3 在开通成功面板,单击Serverless右侧的控制台

7.png

3.4 在SAE控制台中

  • 如果SAE控制台显示领取套餐并开通按量付费的服务未开通提示,您无需任何操作,仅需等待一段时间(约7秒)即可直接使用SAE的相关功能。

8.png

  • 如果您未创建服务关联角色,登录SAE控制台时会弹出欢迎使用Serverless应用引擎SAE对话框,单击确认创建即可完成服务关联角色的创建。自此,已完成SAE免费试用的领取和开通。

9.png

3. 创建实验资源

  1. 领取完免费试用后,返回资源领取界面,单击我已开通,进入实验

说明:如果您的阿里云账号只能领取部分免费试用产品,请您领取符合免费试用资格的产品,然后进入实验,不满足免费试用资格的产品将会使用个人账户资源进行创建,并会产生一定的费用,请您及时关注账户扣费。

10.png

  1. 开通消息队列RocketMQ版。

说明:

  • 如果您选择的免费试用,并且在上一步骤中领取了消息队列RocketMQ版免费试用,请您跳过本步骤,直接进行下一小节操作。
  • 如果您选择的免费试用,但是您的阿里云主账号没有资格领取消息队列RocketMQ版的免费试用,请您根据如下操作,开通消息队列RocketMQ版,进行按量付费,会产生后付费账单,具体计费详情,请参见计费概述
  • 如果您选择的个人资源,请您根据如下操作,开通消息队列RocketMQ版,进行按量付费,会产生后付费账单,具体计费详情,请参见计费概述

1.1 前往消息队列RocketMQ版控制台

1.2 在左侧导航栏,单击实例列表

11.png

1.3 在实例列表页面,单击创建实例

12.png

1.4 在创建RocketMQ实例面板,付费方式选择按量付费,单击确定

13.png

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版实例。

14.png

  1. 开通Serverless应用引擎SAE服务并授权。

说明:

  • 如果您选择的免费试用,并且在上一步骤中领取了Serverless 应用引擎SAE的免费试用,请您跳过本步骤,直接进行下一小节操作。
  • 如果您选择的免费试用,但是您的阿里云主账号没有资格领取Serverless 应用引擎 SAE的免费试用,请您根据如下操作,开通Serverless应用引擎SAE服务并授权,开通后可以按照实际使用量进行计费,详情请参见计费概述
  • 如果您选择的个人资源,请您根据如下操作,开通Serverless应用引擎SAE服务并授权,开通后可以按照实际使用量进行计费,详情请参见计费概述
  • 如您已开通Serverless应用引擎SAE服务并授权,请您跳过本步骤,直接进行下一小节操作。

2.1 登录SAE产品主页

2.2 单击免费开通

2.3在Serverless应用引擎页面,选中Serverless应用引擎服务协议,并单击立即开通

15.png

2.4 开通完成后,系统会弹出恭喜,开通成功!对话框。单击管理控制台,在控制台首页弹出的安全授权提示对话框,单击立即授权

2.5 在云资源访问授权页面,单击同意授权

说明:SAE支持SLR的自动创建。如果您未创建SLR,那么登录SAE控制台时会弹出欢迎使用Serverless应用引擎SAE对话框,单击确认创建即可完成SLR的创建。

4. 创建RocketMQ Topic、Group资源

本步骤以5.x版本的RocketMQ实例为例,创建用于收发消息的Topic和Group资源,仅介绍关键配置项,其余配置项保持默认即可。更多信息,请参见创建实例

  1. 前往消息队列RocketMQ版控制台
  2. 在左侧导航栏中,单击实例列表

16.png

  1. 实例列表页面,找到您创建的消息队列RocketMQ版实例,单击实例ID

17.png

  1. 在左侧导航栏中,单击Topic管理

18.png

  1. Topic管理页面,单击创建Topic

19.png

  1. 创建Topic面板,根据如下说明配置参数,然后单击确定
  • 主题名称:输入Topic名称,例如demo_topic。
  • 消息类型:本实验是基本消息收发体验,请选择普通消息
  • 描述:输文字描述,用于标识这个topic的作用,例如test。

20.png

  1. 在左侧导航栏中,单击Group管理

21.png

  1. Group管理页面,单击创建Group

22.png

  1. 创建Group面板,根据如下说明配置参数,然后单击确定
  • GroupID:输入Group名称,例如demo_group。
  • 投递顺序性:本实验是基本消息收发体验,请选择并发投递
  • 描述:输文字描述,用于标识这个group的作用,例如test。

23.png

5. SAE部署

通过SAE部署服务前,您需要下载以下Demo:

本步骤部署应用时仅介绍关键配置项,其余配置项保持默认即可。

  1. 前往SAE控制台
  2. 在左侧导航栏中,选择命名空间(环境)

24.png

  1. 命名空间页面,单击创建命名空间

25.png

  1. 创建命名空间面板,命名空间名称输入为test命名空间ID输入为test,单击确定

26.png

  1. 在左侧导航栏中,选择应用管理>应用列表

27.png

  1. 创建应用页面,配置相关信息。
  1. 应用基本信息配置向导,根据如下说明配置信息,然后单击下一步:应用部署配置

配置项

说明

应用名称

输入frontend

专有网络配置

选择自定义配置

应用实例数

输入1

命名空间

选择test命名空间。

VPC选择与RocketMQ实例相同的VPC。

vSwitch

vSwitch选择与RocketMQ实例相同的vSwitch。

安全组

选择一个安全组。

如果您没有可用的安全组,请您单击创建安全组,创建新的安全组。

VCPU

选择2Core

内存

选择4GiB

28.png

  1. 应用部署配置配置向导,根据如下说明配置信息,然后单击下一步:确认规格

配置项

说明

技术栈语言

选择Java

应用部署方式

选择JAR包部署

Java环境

选择Open JDK 8

上传JAR包

配置JAR包区域,上传已准备的frontend JAR包。

启动命令设置

展开启动命令设置区域,输入启动命令的options设置

-XX:+UseContainerSupport -XX:InitialRAMPercentage=70.0 -XX:MaxRAMPercentage=70.0

29.png

30.png

  1. 确认规格配置向导,查看您所创建应用的详细信息以及费用配置情况,然后单击确认创建

31.png

  1. 页面会跳转至创建完成配置向导,您可以单击应用详情页进入基本信息页面。

32.png

33.png

  1. 重复步骤5~6,创建其余两个应用cartserviceproductservice

说明:在创建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实例的TopicGroup的名称。


-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

34.png

RocketMQ实例的VPC专有网络的接入点和网络信息在如下图位置获取。

35.png

  1. 为后续压测时保证应用能及时进行弹性伸缩,需要分别为frontend应用、producetservice应用配置弹性策略。
  1. 在应用列表页面,单击frontend应用。

36.png

  1. 基本信息页面的实例部署信息页签,单击添加弹性策略

37.png

  1. 添加弹性策略面板,根据如下说明配置参数,然后单击确认

配置项

说明

指标类型

选择监控指标策略

策略名称

输入metric

触发条件

  • CPU使用率70%
  • TCP总连接数2000个/sec

实例数设置

  • 应用最小实例数1
  • 最大实例数50

38.png

  1. 基本信息页面的实例部署信息页签,单击metric策略右侧操作列下的启用

39.png

  1. 启用弹性策略对话框中,单击确认

40.png

  1. 返回应用列表页面,单击producetservice应用。

41.png

  1. 基本信息页面的实例部署信息页签,单击添加弹性策略

42.png

  1. 添加弹性策略面板,根据如下说明配置参数,然后单击确认

配置项

说明

指标类型

选择监控指标策略

策略名称

输入metric

触发条件

  • CPU使用率70%
  • 应用响应时间(RT)3000ms

实例数设置

  • 应用最小实例数1
  • 最大实例数50

43.png

  1. 基本信息页面的实例部署信息页签,单击metric策略右侧操作列下的启用

44.png

  1. 启用弹性策略对话框中,单击确认

45.png

6. 访问应用

本步骤会使用到负载均衡SLB,具体计费详情,请参见负载均衡SLB费用计算器

  1. 在应用列表页面,单击frontend应用。

46.png

  1. frontend应用的基本信息页面的应用访问设置区域,单击添加公网SLB访问

47.png

  1. 添加公网访问SLB对话框,选择HTTP协议HTTP端口输入80容器端口输入9999,然后单击确认

48.png

添加完成后,您可以在公网访问地址栏看到该公网SLB的IP地址和端口。

49.png

  1. 在浏览器中以slbip:port的格式输入地址并回车,访问微服务商城应用。

50.png

42.png

7. 商城体验

  1. 在商城首页,选择一个商品,单击购买

52.png

  1. 在商品详情页面,单击添加至购物车

53.png

  1. 填写购买信息后,选中同步异步,然后提交订单。
  • 同步:此时后台将进行同步处理,等待几秒后返回处理结果。

54.png

55.png

  • 异步:此时会立即返回结果,后台将订单信息写入消息队列中进行异步消费处理。
  • 使用异步提交订单后,您可在消息队列RocketMQ实例的消息轨迹页面,查询方式选择按Topic查询Topic选择demo_topic,然后单击查询。您即可查看到订单信息在消息队列中的轨迹

56.png

57.png

  • 在左侧导航栏中,单击仪表盘,然后在生产者区域,单击demo_topic,您即可查看到一些监控指标、

59.png

60.png

说明:如果您的缺少仪表盘相关角色,在左侧导航栏中单击仪表盘后,在服务关联角色对话框中单击授权即可。

61.png

8. 压力测试

在下单页面,选择同步(即不开启消息)或异步(即开启消息)。

说明:

  • 不开启消息:将通过SAE弹性能力来应对大流量场景。
  • 开启消息:通过消息队列进行“削峰填谷”,以及异步处理的方式来保证应用稳定性。

62.png

  • 选择“不开启消息”
  • 在商城页面,单击右上角的压力测试,然后不开启消息,单击开始压测,在SAE应用的基础监控页面,观察应用指标变化。

63.png

64.png

  • 您可以看到应用CPU资源即将耗尽,应用开始进行弹性扩容,请求耗时大幅下降。

65.png

66.png

  • 选择“开启消息”
  • 在商城页面,单击右上角的压力测试,然后开启消息,单击开始压测,开始压测,可以看到请求响应很快就返回。

67.png

  • SAE应用开始自动缩容。

68.png

  • 在目标RocketMQ实例的仪表盘页面,观察消息情况。

69.png

9. 清理及后续

云消息队列RocketMQ版

本教程使用的标准版实例只能免费试用1个月。试用期结束后您可以选择释放实例或一键转包年包月,否则超过有效期的部分将会按照按量付费方式进行计费,具体计费详情,请参见计费概述

  • 如果您无需使用云消息队列 RocketMQ 版,请按照如下操作及时清理和释放资源。
  1. 登录云消息队列RocketMQ版控制台,在左侧导航栏选择实例列表
  2. 在目标试用实例所在的操作列选择更多>释放
  3. 在弹出的对话框中单击确定
  • 如果您需要继续使用云消息队列 RocketMQ 版,可以将该试用实例转为包年包月计费类型。
  1. 登录云消息队列RocketMQ版控制台,在左侧导航栏选择实例列表
  2. 在目标试用实例所在的付费类型列选择转包年包月
  3. 按照界面提示完成购买。

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 版,请按照如下操作及时清理和释放资源。
  1. 登录云消息队列RocketMQ版控制台,在左侧导航栏选择实例列表
  2. 在目标试用实例所在的操作列选择更多>释放
  3. 在弹出的对话框中单击确定
  • 如果您需要继续使用云消息队列RocketMQ 版,请及时关注账号扣费情况。

Serverless应用引擎SAE

  • 如果无需使用SAE,请登录SAE控制台,在左侧导航栏,选择应用管理 > 应用列表,在应用列表页面,找到目标应用并单击应用名称,在基本信息页面,选择删除应用>删除,按照界面提示删除资源。
  • 如果需要继续使用SAE,请注意用量,确保账户不要欠费。

负载均衡SLB

SLB产品属于额外计费项,不属于SAE计费项。

  • 如果无需继续使用SLB,并且SAE的应用未解绑或未修改已绑定的SLB实例,则释放SAE应用时SLB实例会自动释放。
  • 如果无需继续使用SLB,并且SAE的应用解绑或修改已绑定的SLB实例,此时SLB实例依旧在运行中,因此,SLB产品仍处于计费状态。您需要手动释放SLB实例后才会停止计费。请登录负载均衡控制台,根据界面提示删除资源。
  • 如果需要继续使用SLB,请注意用量,确保账户不要欠费。
相关实践学习
RocketMQ一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
Java 存储 jvm-sandbox
海量流量下,淘宝如何进行稳定的流量回放?
随着业务的不断发展, 整个淘系的服务端已经有数千个应用,在淘宝已经有非常大的应用数量和变更次数的基础上, 对流量回放也有更高的要求。那么在不断尝试流量的录制与回放的过程中,我们遇到了什么问题?那么在不断尝试的过程中,我们遇到了什么问题?我们由从中得到了什么启示?流量录制回放又能给我们带来多少收益?
9890 0
|
3月前
|
存储 弹性计算 关系型数据库
100W用户、8000W流量在线贺卡应用架构如何优化?
100W用户、8000W流量在线贺卡应用架构如何优化?
|
7月前
|
消息中间件 负载均衡 Java
5分钟轻松打造应对流量洪峰的稳定商城交易系统
本实验通过SAE极速部署一个微服务电商商城,同时结合RocketMQ异步解耦、削峰填谷的能力,带大家体验面对流量洪峰仍旧稳定可靠的商城交易系统!
228 1
|
7月前
|
消息中间件 负载均衡 Serverless
「5分钟打造应对流量洪峰的商城交易系统」清理及后续
【重要】体验完成后,如果您无需使用云消息队列RocketMQ 版、SAE和SLB,请按照如下操作及时清理和释放资源。
283 0
|
8月前
|
消息中间件 运维 应用服务中间件
5分钟轻松打造应对流量洪峰的稳定商城交易系统实验场景
本实验通过SAE极速部署一个微服务电商商城,同时结合RocketMQ异步解耦、削峰填谷的能力,带大家体验面对流量洪峰仍旧稳定可靠的商城交易系统!
314 0
|
11月前
|
运维 监控 安全
《2023云原生实战案例集》——06 医疗健康——谱尼测试 基于SAE实现业务快速上线并从容应对流量洪峰
《2023云原生实战案例集》——06 医疗健康——谱尼测试 基于SAE实现业务快速上线并从容应对流量洪峰
|
双11
《双十一背后的农行系统如何应对交易峰值挑战?》电子版地址
双十一背后的农行系统如何应对交易峰值挑战?
65 0
《双十一背后的农行系统如何应对交易峰值挑战?》电子版地址
|
数据挖掘 BI 开发者
各流量渠道毛利率探索分析|学习笔记
快速学习各流量渠道毛利率探索分析
199 0
各流量渠道毛利率探索分析|学习笔记
|
4天前
|
云安全 安全 网络安全
【看案例】完美日记:保障电商大促活动平稳运行
完美日记在“双11”电商大促、“双12”购物节期间,依靠阿里云DDoS高防IP、云安全中心、Web应用防火墙基础安全三件套,从容面对业务高峰、安全压力,提升大促活动期间系统的快速响应能力和安全性。
|
消息中间件 缓存 Dubbo
修正版 | 面对千万级、亿级流量怎么处理?
这是之前发过的一篇文章,写完之后小问题挺多的,于是还是重新改一版。
修正版 | 面对千万级、亿级流量怎么处理?