消息队列+Serverless:实现高弹性的电商订单系统

本文涉及的产品
函数计算FC,每月15万CU 3个月
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 基于消息队列以及函数计算,快速部署一个高弹性的商品订单系统,能够应对抢购场景下的高并发情况。

消息队列+Serverless:实现高弹性的电商订单系统


1. 云起实验室实验资源方式介绍

云起实验室实验资源方式介绍

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

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

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

准备开始实验

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

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

2. 领取免费试用资源

实验前必看!

  • 本实验访问控制RAM是免费产品。
  • 本实验是用的时间总线EventBridge目前处于公测阶段,限期免费,如果实验后您还想继续使用该服务,请您随时留意后续的收费通知。
  • 本实验使用的消息服务MNS是付费资源,具体收费模式请参考https://www.aliyun.com/price/product?spm=a2c4g.71896.0.0.4aee56ee0qdPIF#/mns/detail/mns
  • 本实验使用的函数计算FC和表格存储Tablestore均为付费资源。这两个产品支持免费试用,如果您的阿里云主账号符合开通免费试用的资格,建议您开通免费试用函数计算FC和表格存储Tablestore的免费试用,两者免费试用时长为3个月,超出免费额度的用量,计入按量付费,会产生后付费账单,具体计费详情,请参见计费概述
  • 如果您的阿里云账号只能领取部分免费试用产品,请您领取符合免费试用资格的产品,然后进入实验,不满足免费试用资格的产品将会使用个人账户资源进行创建,并会产生一定的费用,请您及时关注账户扣费。
  • 为了避免资源浪费并造成账号扣费的情况,请严格按照本文提供的参数进行配置。在实验完成之后,请您及时删除或禁用压测任务。
  1. 在实验开始前,请您选择领取免费试用额度

  1. 开通函数计算FC免费试用。

2.1 在实验室页面下方,选择函数计算FC,单击立即试用

2.2 在函数计算FC面板上,选中服务协议,单击立即试用

  1. 开通表格存储Tablestore免费试用。

3.1 在实验室页面下方,选择表格存储Tablestore,单击立即试用

3.2 在表格存储Tablestore面板,选中服务协议,然后单击立即试用,如弹出新的页面,您可先忽略。

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

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

3. 资源准备

  1. 产品开通

依次前往消息服务 MNS访问控制、函数计算和事件总线控制台,开通四个产品服务。请注意,开通的服务需要在同一个region,本次实验试用华东1(杭州)区域的资源。

1)消息服务 MNS:https://mns.console.aliyun.com/

2)访问控制:https://ram.console.aliyun.com/

3)函数计算:https://fcnext.console.aliyun.com/

4)事件总线:https://eventbridge.console.aliyun.com/

5)表格存储:https://otsnext.console.aliyun.com/

注意:本场景可能会产生费用,主要包括:

为了避免不必要的费用,请在本场景体验完成后,按照文档最后删除步骤,进行相关资源的删除。所有顺利完成体验的用户,将会在活动结束后的 5个工作日内,收到价值3元的产品代金券。

  1. 权限授权

事件总线开通完成后,需要登陆事件总线控制台,会有进行SLR授权页面,单击一键授权即可。

  1. 资源创建

表格存储开通完成后,需要进入表格存储控制台,在某个地域(例如青岛)提前创建好一个表格存储实例,然后记住该地域以及实例名称,后续部署应用时会用到这些信息。

4. 资源准备

  1. 产品开通

您已经通过免费试用活动,开通了函数计算FC和表格存储Tablestore,剩余如下产品需要登录控制台开通,请注意,开通的服务需要在同一个region,本次实验试用华东1(杭州)区域的资源。

依次前往消息服务 MNS访问控制和事件总线控制台,开通这两个个产品服务。

1)消息服务 MNS:https://mns.console.aliyun.com/

2)事件总线:https://eventbridge.console.aliyun.com/

注意:本场景可能会产生费用,主要包括:

为了避免不必要的费用,请在本场景体验完成后,按照文档最后删除步骤,进行相关资源的删除。所有顺利完成体验的用户,将会在活动结束后的 5个工作日内,收到价值3元的产品代金券。

  1. 权限授权

事件总线开通完成后,需要登陆事件总线控制台,会有进行SLR授权页面,单击一键授权即可。

  1. 资源创建

表格存储开通完成后,需要进入表格存储控制台,在某个地域(例如杭州)提前创建好一个表格存储实例,然后记住该地域以及实例名称,后续部署应用时会用到这些信息。

5. 应用部署

  1. 通过该链接https://fcnext.console.aliyun.com/applications/create?template=inventory-management-application,进入函数计算FC应用部署页面。
  2. 针对刚开通的账号,函数计算会指引用户创建一个默认角色,点击“创建”然后“同意授权”,这个角色在后续流程中会用到。若没有该弹窗请跳过此步。

  1. 部署类型处,选择直接部署

  1. 角色名称处,若提示需要额外授权或者未授权,可以单击前往授权 ,然后单击同意授权

  1. 进行高级配置填写。
  2. 地域选择之前创建的表格存储服务实例所在的地域-华东1(杭州)
  3. 服务名:默认inventory-management-application。
  4. 订单处理队列名称:fcmnsOrderQueue(请直接复制此队列名称)
  5. 死信队列名称请填写:fcmnsDeadLetterQueue(请直接复制此队列名称)
  6. 表格存储实例名称:填入之前创建好的实例名称
  7. 表格存储表格名称:自行填写。
  8. RAM 角色 ARN处提示需要一些额外的权限,则单击前往授权后进行授权。

说明:其余配置可以自定义设置,输入的资源名称需要记住,方便后续进行资源删除。

  1. 配置完成后,单击创建,然后就会跳转到应用详情页面,此处需要稍等 3-5 分钟,等待应用创建完成。

6. 应用访问

  1. 应用完成部署后,您可以看到访问域名,单击即可跳转到库存管理页面。

  1. 库存管理页面,可以进行如下操作:
  2. 新增商品:新增目标商品,需要指定商品名称,商品编号以及初始库存大小,由于法律法规原因,该示例程序暂不支持配置告警规则,新增完成后,商品概要会在表格中展示。

  1. 模拟下单/停止下单:可在目标商品的后面单击模拟下单,此时示例程序会不间断地模拟用户对目标商品进行下单,每个订单都会生成对应的订单消息进入订单处理消息队列中,触发消息处理函数执行,从而不断更新库存。若想要停止生成订单,只需要单击停止下单即可。

  1. 入库:当库存不足时,订单就会失败进而生成失败订单消息投递到死信队列中,触发错误处理函数执行更新“失败订单数”,页面中的失败订单数也会不断上升,此时就需要管理员进行“商品入库操作”,新增指定数量的商品

  1. 体验完成后,关掉页面即可。

7. 资源删除

本场景的部署过程是免费的,但是在后期的使用过程是会产生一定的费用,主要包括:

所以您之后如果需要商品下单以及库存更新等操作,可能都会涉及到相关费用,为了避免费用的产生,您可以删除相对应的资源:

  • 删除表格存储表格。

前往表格存储控制台https://otsnext.console.aliyun.com/,进入对应实例中,单击删除表格。

  • 删除表格存储实例。

前往表格存储控制台https://otsnext.console.aliyun.com/,找到对应实例,单击释放

  • 删除函数计算服务。

在应用创建完成页面,单击右上角删除,再选中所有资源,然后单击删除应用及所选资源,即可删除函数计算相关的资源。

  • 删除消息服务MNS队列。

前往消息服务MNS控制台https://mns.console.aliyun.com/,删除队列的名称为:fcmnsOrderQueue、fcmnsDeadLetterQueue,选择更多>删除

队列的资源名称可以在应用中心部署页面查看。

需要注意的是,如果您通过其他途径/渠道对要删除的资源资源进行了使用,请注意删除后的影响。

实验地址:https://developer.aliyun.com/adc/scenario/4a4ffafd8a1e482f83eb0d7bc07ac64b

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
1月前
|
消息中间件 缓存 NoSQL
Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。
【10月更文挑战第4天】Redis 是一个高性能的键值对存储系统,常用于缓存、消息队列和会话管理等场景。随着数据增长,有时需要将 Redis 数据导出以进行分析、备份或迁移。本文详细介绍几种导出方法:1)使用 Redis 命令与重定向;2)利用 Redis 的 RDB 和 AOF 持久化功能;3)借助第三方工具如 `redis-dump`。每种方法均附有示例代码,帮助你轻松完成数据导出任务。无论数据量大小,总有一款适合你。
74 6
|
21天前
|
消息中间件 Java Kafka
初识Apache Kafka:搭建你的第一个消息队列系统
【10月更文挑战第24天】在数字化转型的浪潮中,数据成为了企业决策的关键因素之一。而高效的数据处理能力,则成为了企业在竞争中脱颖而出的重要武器。在这个背景下,消息队列作为连接不同系统和服务的桥梁,其重要性日益凸显。Apache Kafka 是一款开源的消息队列系统,以其高吞吐量、可扩展性和持久性等特点受到了广泛欢迎。作为一名技术爱好者,我对 Apache Kafka 产生了浓厚的兴趣,并决定亲手搭建一套属于自己的消息队列系统。
43 2
初识Apache Kafka:搭建你的第一个消息队列系统
|
1月前
|
消息中间件 存储 监控
消息队列系统中的确认机制在分布式系统中如何实现
消息队列系统中的确认机制在分布式系统中如何实现
|
1月前
|
消息中间件 存储 监控
【10月更文挑战第2天】消息队列系统中的确认机制在分布式系统中如何实现
【10月更文挑战第2天】消息队列系统中的确认机制在分布式系统中如何实现
|
2月前
|
消息中间件 运维 安全
云消息队列 ApsaraMQ Serverless 演进:高弹性低成本、更稳定更安全、智能化免运维
在 2024 年云栖大会上,阿里云智能集团产品专家刘尧全面介绍了云消息队列 ApsaraMQ Serverless 的落地成果和产品进展。此外,我们还邀请到杭州优行科技有限公司中间件消息研发负责人王智洋,分享了 ApsaraMQ for Kafka Serverless 助力曹操出行实现成本优化和效率提升的实践经验。
154 8
|
1月前
|
消息中间件 存储 监控
消息队列系统中的确认机制在分布式系统中如何实现?
消息队列系统中的确认机制在分布式系统中如何实现?
|
3月前
|
消息中间件 存储 监控
消息队列系统中的确认机制在分布式系统中如何实现?
消息队列系统中的确认机制在分布式系统中如何实现?
|
3月前
|
前端开发 小程序 Serverless
异步任务处理系统问题之阿里云函数计算FC的应用场景有哪些
异步任务处理系统问题之阿里云函数计算FC的应用场景有哪些
|
3月前
|
消息中间件 存储 Kafka
ZooKeeper助力Kafka:掌握这四大作用,让你的消息队列系统稳如老狗!
【8月更文挑战第24天】Kafka是一款高性能的分布式消息队列系统,其稳定运行很大程度上依赖于ZooKeeper提供的分布式协调服务。ZooKeeper在Kafka中承担了四大关键职责:集群管理(Broker的注册与选举)、主题与分区管理、领导者选举机制以及消费者组管理。通过具体的代码示例展示了这些功能的具体实现方式。
103 2
|
3月前
|
消息中间件 Cloud Native API
核心系统转型问题之消息队列提升交易响应时间如何解决
核心系统转型问题之消息队列提升交易响应时间如何解决

热门文章

最新文章

相关产品

  • 函数计算