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

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
函数计算FC,每月15万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 架构模式
相关文章
|
2月前
|
消息中间件 存储 Java
使用Java构建可扩展的消息队列系统
使用Java构建可扩展的消息队列系统
|
15天前
|
消息中间件 存储 监控
消息队列系统中的确认机制在分布式系统中如何实现?
消息队列系统中的确认机制在分布式系统中如何实现?
|
16天前
|
前端开发 小程序 Serverless
异步任务处理系统问题之阿里云函数计算FC的应用场景有哪些
异步任务处理系统问题之阿里云函数计算FC的应用场景有哪些
|
19天前
|
消息中间件 存储 Kafka
ZooKeeper助力Kafka:掌握这四大作用,让你的消息队列系统稳如老狗!
【8月更文挑战第24天】Kafka是一款高性能的分布式消息队列系统,其稳定运行很大程度上依赖于ZooKeeper提供的分布式协调服务。ZooKeeper在Kafka中承担了四大关键职责:集群管理(Broker的注册与选举)、主题与分区管理、领导者选举机制以及消费者组管理。通过具体的代码示例展示了这些功能的具体实现方式。
28 2
|
18天前
|
消息中间件 Cloud Native API
核心系统转型问题之消息队列提升交易响应时间如何解决
核心系统转型问题之消息队列提升交易响应时间如何解决
|
16天前
|
Kubernetes Serverless 调度
异步任务处理系统问题之在阿里云函数计算平台上用户提交异步任务的问题如何解决
异步任务处理系统问题之在阿里云函数计算平台上用户提交异步任务的问题如何解决
|
21天前
|
存储 缓存 中间件
Serverless 架构问题之FaaSNet系统的工作如何解决
Serverless 架构问题之FaaSNet系统的工作如何解决
26 0
|
2月前
|
域名解析 运维 Serverless
函数计算产品使用问题之设置最大实例数为1和最大并发数为20,当请求数量超过20时,系统会如何处理
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
2月前
|
消息中间件 Java 中间件
如何在Java项目中实现高效的消息队列系统
如何在Java项目中实现高效的消息队列系统
|
3月前
|
消息中间件 存储 Java
深度探索:使用Apache Kafka构建高效Java消息队列处理系统
【6月更文挑战第30天】Apache Kafka是分布式消息系统,用于高吞吐量的发布订阅。在Java中,开发者使用Kafka的客户端库创建生产者和消费者。生产者发送序列化消息到主题,消费者通过订阅和跟踪偏移量消费消息。Kafka以持久化、容灾和顺序写入优化I/O。Java示例代码展示了如何创建并发送/接收消息。通过分区、消费者组和压缩等策略,Kafka在高并发场景下可被优化。
102 1

相关产品

  • 函数计算