5分钟打造应对流量洪峰的商城交易系统——基于云消息队列 RocketMQ和Serverless 应用引擎 SAE

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
函数计算FC,每月15万CU 3个月
简介: 通过SAE极速部署一个微服务电商商城,同时结合RocketMQ异步解耦、削峰填谷的能力,带大家体验面对流量洪峰仍旧稳定可靠的商城交易系统!

1、背景介绍

  • 消息队列RocketMQ版是阿里云基于Apache RocketMQ构建的低延迟、高并发、高可用、高可靠的分布式“消息、事件、流”统一处理平台。
  • Serverless应用引擎SAE(Serverless App Engine)是一个全托管、免运维、高弹性的通用PaaS平台。SAE支持Spring Cloud、Dubbo、HSF、Web应用和XXL-JOB、ElasticJob任务的全托管,零改造迁移、无门槛容器化、并提供了开源侧诸多增强能力和企业级高级特性。
  • 通过SAE极速部署一个微服务电商商城,同时结合RocketMQ异步解耦、削峰填谷的能力,带大家体验面对流量洪峰仍旧稳定可靠的商城交易系统!

我们选择了微服务架构,将商城划分为多个微服务,包括订单服务、库存服务、支付服务等。使用SAE平台,我们可以轻松部署这些微服务,而无需担心底层基础设施的运维。SAE提供了自动伸缩和负载均衡功能,确保微服务在面对不断变化的流量时能够保持高可用性和稳定性。使用RocketMQ来实现微服务之间的异步解耦。例如,当用户下单时,订单服务可以将订单创建的消息发送到RocketMQ消息队列,而不需要等待库存和支付服务的实时响应。这种异步解耦可以提高系统的性能和可伸缩性,允许各个微服务独立工作,同时降低了服务之间的耦合度。

在销售促销或特殊事件期间,商城可能会面临流量洪峰。为了应对这种情况,我们使用RocketMQ的削峰填谷能力。当流量剧增时,商城可以将请求暂时缓存到消息队列,然后慢慢消化,而不会让后端微服务直接承受所有的请求压力。这种方式可以确保商城系统在高峰时期仍然能够稳定运行,而不会因为超负荷而崩溃。

2、实验前的准备

image.png
image.png
image.png
image.png
可以看到对应的资源;
image.png

3、创建RocketMQ Topic、Group资源

1、创建实例
image.png
在实例列表页面,找到您创建的消息队列RocketMQ版实例,单击实例ID。
2、创建topic
image.png
这里的问题:
image.png
应该是要等待一会:
image.png
等一会就好了;
image.png
继续创建group;
image.png

4、SAE部署

在左侧导航栏中,选择命名空间(环境)。
image.png
在创建命名空间面板,命名空间名称输入为test,命名空间ID输入为test,单击确定。
又出现了错误:
image.png

image.png
image.png

5、部署商城

上传jar包之后:
image.png
在浏览器中以slbip:port的格式输入地址并回车,访问微服务商城应用。
image.png
因为使用到负载均衡SLB,具体计费详情,请参见负载均衡SLB费用计算器,后续步骤未完成了。
最后,释放对应的资源:
image.png
image.png

6、总结

在本次实验中,我们使用阿里云的Serverless应用引擎(SAE)来快速部署一个微服务电商商城,并结合RocketMQ的异步消息传递能力,以实现解耦和削峰填谷的需求。

结合RocketMQ版消息队列和SAE,我们可以构建一个稳定可靠的电商商城交易系统。添加如下的功能:

  • 订单处理:使用RocketMQ来异步处理订单相关的消息,确保订单信息的可靠传递和处理,同时利用SAE的高弹性来自动扩展订单处理服务。
  • 库存管理:通过RocketMQ将库存变更事件传递给库存管理服务,实现库存的实时更新,同时使用SAE来托管库存管理服务,确保高可用性和自动扩展。
  • 削峰填谷:在销售促销或特殊事件期间,使用RocketMQ和SAE的自动扩展能力来处理高峰流量,确保系统在流量洪峰时依然稳定可靠。

在后续的开发中,我们可以合理划分微服务,因为过于细粒度的划分可能导致系统复杂性增加。合理划分微服务可以提高系统的可维护性。并且在生产环境中,及时监控和日志记录是非常重要的。SAE提供了监控和日志功能,需要充分利用以便快速发现和解决问题。

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
目录
打赏
0
0
1
0
271
分享
相关文章
【限时有奖】快速体验云消息队列 RocketMQ 版 Serverless 系列
云消息队列 RocketMQ 版是阿里云基于 Apache RocketMQ 构建的低延迟、高并发、高可用、高可靠的分布式“消息、事件、流”统一处理平台。现在,有奖体验活动火热来袭!诚邀您快速体验云消息队列 RocketMQ 版 Serverless 系列,赢取精美礼品!
快速体验云消息队列 RocketMQ 版 Serverless 系列
欢迎报名参加RocketMQ Serverless活动!稳定可靠,无需运维,按量计费,秒级万QPS弹性,平均节省成本30%。参与即有机会赢取保温杯或木质音箱(限量500个)。活动时间:即日起至2025年1月26日16:00。访问活动页面,完成场景体验并上传消息轨迹截图即可参与抽奖,先到先得!
开发者如何使用轻量消息队列MNS
【10月更文挑战第19天】开发者如何使用轻量消息队列MNS
340 10
云消息队列RabbitMQ实践解决方案评测
一文带你详细了解云消息队列RabbitMQ实践的解决方案优与劣
130 10
阿里云 SAE 邀您参加 Serverless 高可用架构挑战赛,赢取精美礼品
阿里云 SAE 邀您参加 Serverless 高可用架构挑战赛,赢取精美礼品。
MQ 消息队列核心原理,12 条最全面总结!
本文总结了消息队列的12个核心原理,涵盖消息顺序性、ACK机制、持久化及高可用性等内容。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
解决方案 | 云消息队列RabbitMQ实践
在实际业务中,网站因消息堆积和高流量脉冲导致系统故障。为解决这些问题,云消息队列 RabbitMQ 版提供高性能的消息处理和海量消息堆积能力,确保系统在流量高峰时仍能稳定运行。迁移前需进行技术能力和成本效益评估,包括功能、性能、限制值及费用等方面。迁移步骤包括元数据迁移、创建用户、网络打通和数据迁移。
108 4
解决方案 | 云消息队列RabbitMQ实践
解决方案 | 云消息队列RabbitMQ实践
70 1

热门文章

最新文章

相关产品

  • 函数计算
  • Serverless 应用引擎