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、实验前的准备
可以看到对应的资源;
3、创建RocketMQ Topic、Group资源
1、创建实例
在实例列表页面,找到您创建的消息队列RocketMQ版实例,单击实例ID。
2、创建topic
这里的问题:
应该是要等待一会:
等一会就好了;
继续创建group;
4、SAE部署
在左侧导航栏中,选择命名空间(环境)。
在创建命名空间面板,命名空间名称输入为test,命名空间ID输入为test,单击确定。
又出现了错误:
5、部署商城
上传jar包之后:
在浏览器中以slbip:port的格式输入地址并回车,访问微服务商城应用。
因为使用到负载均衡SLB,具体计费详情,请参见负载均衡SLB费用计算器,后续步骤未完成了。
最后,释放对应的资源:
6、总结
在本次实验中,我们使用阿里云的Serverless应用引擎(SAE)来快速部署一个微服务电商商城,并结合RocketMQ的异步消息传递能力,以实现解耦和削峰填谷的需求。
结合RocketMQ版消息队列和SAE,我们可以构建一个稳定可靠的电商商城交易系统。添加如下的功能:
- 订单处理:使用RocketMQ来异步处理订单相关的消息,确保订单信息的可靠传递和处理,同时利用SAE的高弹性来自动扩展订单处理服务。
- 库存管理:通过RocketMQ将库存变更事件传递给库存管理服务,实现库存的实时更新,同时使用SAE来托管库存管理服务,确保高可用性和自动扩展。
- 削峰填谷:在销售促销或特殊事件期间,使用RocketMQ和SAE的自动扩展能力来处理高峰流量,确保系统在流量洪峰时依然稳定可靠。
在后续的开发中,我们可以合理划分微服务,因为过于细粒度的划分可能导致系统复杂性增加。合理划分微服务可以提高系统的可维护性。并且在生产环境中,及时监控和日志记录是非常重要的。SAE提供了监控和日志功能,需要充分利用以便快速发现和解决问题。