在当今数字化快速发展的时代,分布式系统的稳定性和可靠性对于企业来说至关重要。特别是在处理高并发、实时性要求高的场景下,消息队列作为一种异步通信的解决方案,能够有效地提高系统的吞吐量和响应速度。然而,传统的消息队列方案在部署和维护上存在一定的难度和成本。为了解决这一问题,阿里云推出了云消息队列RabbitMQ解决方案,旨在通过架构优化解决稳定性和成本问题。本文将从对云消息队列RabbitMQ版动手实践进行深入测评。
一、方案部署体验
1.1 架构设计
方案架构包含消息生产者、消息队列、消息消费者三个核心模块。消息在云消息队列 RabbitMQ 版的组件之间流动过程为:1. 生产者向 Exchange 发送消息;2. Exchange 根据消息属性将消息路由到 Queue 进行存储;3. 消费者从 Queue 拉取消息进行消费。
1.2 部署流程
一键部署流程大致分为以下几个步骤:
1、单击一键部署前往ROS控制台,修改资源栈名称,进行安全确认后点击创建。
2、单击下一步进行创建。
3、点击输出栏,查看AccessKeyId、AccessKeySecret。
4、设置静态用户名密码
1)在云消息队列 RabbitMQ 版控制台的左侧导航栏中,点击实例列表,打开具体实例,单击静态用户名密码。
2)在创建用户名密码面板,填写上一步创建的AccessKey ID和AccessKey Secret,单击确定。
3)记住创建的用户名和密码。
5、方案验证
一、通过Java实现消息收发,验证RabbitMQ消息流转
1)在pom.xml文件中添加以下依赖引入Java依赖库。
2)查看实例公网接入点。
3)创建消息发送程序,需要修改实例接入点,填写上面创建的用户名、密码。
4)创建消费订阅程序,需要修改实例接入点,填写上面创建的用户名、密码。
5)执行生产程序和消费订阅程序
二、通过消息轨迹,验证消息传递过程
1)返回消息队列RabbitMQ版控制台页签,在左侧导航栏中,单击Dashboard。
如果您是首次使用Dashboard功能,需要开通ARMS服务。
2)在Queue列表页面,单击test-queue。
3)在消息轨迹页面,您可以根据按Message ID查询和按Queue查询。
按Message ID查询:根据IntelliJ IDEA控制台打印的messageId可以精确查询对应消息的轨迹。
按Queue查询。
单击轨迹详情,查询对应消息的生产和投递轨迹详情。
查看监控面板
三、通过多线程并发测试,验证RabbitMQ高并发性能
这个还实验环境的代码总报错,没有查到问题原因。
6、释放资源
点击ROS控制台,在资源栈列表中找到创建的实例,点击删除,清理创建的资源。
二、总结
云消息队列RabbitMQ版通过资源编排ROS一键部署,有效解决了分布式系统中的稳定性和成本问题。其丰富的管理控制台功能和出色的性能表现,使得云消息队列RabbitMQ版成为企业处理高并发、实时性要求高的场景下的首选解决方案。
关于本次实践体验的反馈和建议如下:
1)整个实践手册中方案验证过程没有很好的展示出Exchange在这里的作用。
2)在部署体验过程中主要在构建消息发送程序和消费订阅程序时,按文档中进行操作,有如下的报错。
反复修改了好多次。希望这里可以完善下如何在IntelliJ IDE上一步步配置的截图,如果是个零基础的用户对这部分操作可能会有点问题。现在这部分文档有点太简化了。或者可以提供一个远程仓库地址,使用用户来clone使用。
在多线性程序测试也是同样的问题与建议。文档还是建议尽可能的详细,把每个用户当做小白
3)在创建生产消息和订阅消息后缺少了去执行这两个java项目的步骤。否则后面的Dashboard中是查询不到数据的。
4)在代码参数这里hostname应该提示填写使用公网接入点还是VPC接入点,还是两者都可以。
5)在该实践方案中没有体现云消息队列RabbitMQ的多可用区高可用(当某个可用区服务异常时,客户端可以通过自动重连功能,无缝切换到其他可用区使用)和单队列横向扩展的两个核心优势。
6)针对云消息队列RabbitMQ版的定时消息能力的应用场景本次的部署方案中没有涉及,希望方案中可以增加这部分内容。