RocketMQ 解决会话通知及状态连续性问题
一键部署
30
https://www.aliyun.com/solution/tech-solution/rocketmq-for-multi-agent-communication
方案概览
本方案利用云消息队列RocketMQ版的LiteTopic能力,为分布式Web应用中的长连接会话管理提供了高效解决方案。它解决了消息的精准投递与会话状态一致性的核心挑战。
方案架构
方案提供的默认设置完成部署后在阿里云上搭建的系统如下图所示。实际部署时您可以根据资源规划修改部分设置,但最终形成的运行环境与下图相似。
本方案利用云消息队列RocketMQ版的LiteTopic能力,为分布式Web应用中的长连接会话管理提供了高效解决方案。它解决了消息的精准投递与会话状态一致性的核心挑战。
方案优势
精准消息路由: LiteTopic能够将每个会话创建一个独享的LiteTopic,每个服务节点订阅当前管理的会话的LiteTopic集合。这使得消息可以被精准路由到持有该会话的服务节点,实现了高效的点对点推送,避免了在集群内进行无效广播。
会话状态连续性:在会话连接重连后,应用服务节点可动态更新订阅关系,新的服务节点可接着之前的消费进度继续消费。既避免了重复执行大模型任务,又保障了应用服务节点的无状态,降低代码复杂度,提升了服务的横向扩展性。
您可以访问代码仓库下载应用源码。
本方案的技术架构包括以下基础设施和云服务:
基础设施和云服务 | 说明 |
专有网络VPC | 为云服务器ECS等云资源构建云上私有网络。 |
云服务器ECS | 用于部署 Multi-Agent 系统。 |
云消息队列RocketMQ版 | 提供消息队列服务,实现会话状态连续性的异步通道。 |
阿里云百炼大模型服务平台 | 提供模型服务。 |
部署准备
开始部署前,请按以下指引完成账号申请、账号充值等准备工作。
准备账号
资源开通
登录阿里云百炼大模型服务平台,阅读并同意协议后,将自动开通阿里云百炼,如果未弹出服务协议,则表示您已经开通。
通过Terrafrom模板快速部署
5
为什么使用 Terraform
Terraform 是一款业界领先的基础设施即代码(Infrastructure as Code, IaC)工具,专门用于云资源的自动化部署与管理。其核心优势包括:
自动化部署:通过声明式代码自动创建和配置云资源,避免手动操作带来的错误风险,显著提升部署效率。
环境一致性:确保开发、测试、生产环境配置完全一致,消除环境差异导致的安全隐患。
版本化管理:支持 Git 等版本控制系统,实现基础设施变更的审计追踪和回滚能力。
智能依赖管理:自动处理资源间的依赖关系,确保按正确顺序创建或销毁资源。
多云适配能力:支持阿里云、AWS、Azure 等主流云平台,便于构建混合云安全架构。
方案资源
本方案的 Terraform 模板将自动创建并配置以下云资源:
1个专有网络VPC:为云服务器ECS等云资源构建云上私有网络。
1 个交换机:将云服务器ECS等资源连接在同一网络上,实现它们之间的通信,并提供基本的网络分段和隔离功能。
1个安全组:用于限制专有网络VPC下云服务器ECS的网络流入和流出规则。
1 台云服务器ECS:用于部署示例应用程序。
1个云消息队列RocketMQ版实例:用于实现Agent之间的异步通信。
费用说明
本方案 Terraform 模板创建的云资源,将根据模板中配置的资源规格进行计费。预估费用:5 元 / 小时(实际费用可能因资源规格、配置或版本的不同而有所差异,请以云产品控制台显示的费用为准)。
当资源不再使用时,请及时销毁,以避免产生不必要的费用。
操作步骤
访问部署页面。
访问Terraform 部署页面,系统将自动加载本方案的模板。
配置部署地域。
默认地域:西南1(成都)。
修改方法:单击左侧,设置为公共云中的地域ID。例如:
region = "cn-chengdu"。重要本方案当前仅支持在上述默认地域部署。
配置必填参数。
单击左侧,配置如下参数的
default值:说明如需调整更多资源配置,请参考资源列表中的相应资源参数进行设置。
参数
说明
ecs_instance_password设置 ECS root 用户密码。
执行部署。
单击创建按钮开始部署。等待约 5 分钟左右,资源栈信息页面的状态变为创建成功,即表示资源部署完成。
单击输出页签,输出关键字为
ecs_login_address对应的值,其为已创建的ECS实例的登录地址。
创建Topic和Group
当前已创建了1个云消息队列 RocketMQ 版实例,需等待实例状态变为运行中。接下来您需要创建所需的Topic和Group。
点击左侧导航栏实例列表。
在顶部菜单栏左上角,选择西南1(成都)地域。
在列表中点击已创建的RocketMQ实例,跳转到实例详情页。
创建Topic:
在左侧导航栏中单击Topic管理。
多次单击创建 Topic,共创建2个Topic,配置参数见下表,其余参数保持默认。
名称
消息类型
描述
LLM_TOPIC
普通消息
LLM应用Topic
WorkerAgentResponse
轻量消息
用于接收响应的轻量级Topic
创建Group:
在左侧导航栏中单击Group管理。
多次单击创建 Group,共创建2个Group,配置参数见下表,其余参数保持默认。
Group ID
消费模式
Topic
投递顺序性
描述
LLM_CID
CLUSTERING
-
并发投递
LLM应用消费者CID
CID_HOST_AGENT_LITE
LITE_SELECTIVE
WorkerAgentResponse
顺序投递
订阅轻量级Topic的消费者CID
获取RocketMQ服务的访问用户名和密码:
在左侧导航栏中单击访问控制。
选择智能身份识别,打开内网免身份识别,记录用户名和密码以便在下一步中使用。

获取百炼API Key
前往阿里云百炼的API Key页面。
在 API-Key 页签下,创建或查看 API Key。
重要子账号需要通过主账号完成授权后再去创建 API Key。
请不要将 API Key 以任何方式公开,避免因未经授权的使用造成安全风险或资金损失。
单击 API Key 列中的
,复制 API Key。
应用部署
10
开通了云资源后,接下来您需要执行以下操作部署示例应用程序:
远程连接云服务器ECS。
登录ECS管理控制台,在实例页面,找到前面步骤所创建的 ECS 实例。
重要必须在上述指定地域才能查看已创建的实例。
在右侧操作列,单击远程连接,并选择通过Workbench远程连接。根据页面提示登录,进入终端页面。具体操作请参见:使用Workbench登录ECS实例。
说明如果系统弹出“安全组白名单开通提示”面板, 请按照页面引导完成端口一键添加。
部署示例应用程序:
替换以下脚本中的配置项值并执行脚本。
cat << EOF >> ~/.bash_profile export BAILIAN_API_KEY=sk-*** export ROCKETMQ_INSTANCE_ID=rmq-***-*** export ROCKETMQ_ENDPOINT=rmq-***-vpc.***.rmq.aliyuncs.com:8080 export ROCKETMQ_USERNAME=*** export ROCKETMQ_PASSWORD=*** EOF source ~/.bash_profile配置项名称
说明
BAILIAN_API_KEY
在阿里云百炼的密钥管理页面,在 API-Key 页签下,创建或查看 API Key。单击 API Key 列中的
,复制 API Key。ROCKETMQ_INSTANCE_ID
在云消息队列 RocketMQ 版管理控制台目标实例下的页签获取实例 ID。
ROCKETMQ_ENDPOINT
在云消息队列 RocketMQ 版管理控制台目标实例下的页签,在TCP 协议接入点区域,获取VPC专有网络的接入点和网络信息。
ROCKETMQ_USERNAME
在云消息队列 RocketMQ 版管理控制台目标实例下的页签获取用户名和密码。
ROCKETMQ_PASSWORD
安装并启动应用。
curl -fsSLO https://help-static-aliyun-doc.aliyuncs.com/install-script/multi-agents-rmq/install-llm-agent-web-gateway.sh chmod +x install-llm-agent-web-gateway.sh ./install-llm-agent-web-gateway.sh等待应用启动完毕,直到终端显示
所有服务已成功启动字眼,代表启动成功。
验证及清理
5
方案验证
3
验证应用功能 - Web页面
安全组入方向增加端口。
登录ECS管理控制台,在安全组页面,点击安全组ID进入安全组详情页。
在入方向的页签下点击增加规则,按图增加规则后,点击提交。

协议:自定义TCP。
访问来源:任何位置。
访问目的:
9090、9191、9292。
获取ECS公网IP地址。
登录ECS管理控制台,在实例页面,找到前面步骤所创建的 ECS 实例。
重要必须在上述指定地域才能查看已创建的实例。
在基本信息页签,查看并复制公网 IP。
说明如果没看到基本信息页签,请点击左上角的切换至简捷版。
在浏览器地址栏中输入上述ECS公网 IP:9090并回车,即可访问应用的Web页面。
在对话框中输入
帮我介绍下RocketMQ。
智能体执行任务过程中,可以点击重连会话,可以看到节点已经切换并由其他节点重新订阅消息,最终会返回RocketMQ的概念。

查看消息轨迹
单击左侧导航栏实例列表。
在顶部菜单栏左上角,选择西南1(成都)地域。
单击目标实例进入其详情页,单击左侧导航栏消息轨迹,可以按Topic或按LiteTopic查询到相关的消息轨迹。
资源释放
2
清理一键部署创建的资源
登录ROS控制台。
在左侧导航栏,选择资源栈。
在资源栈页面的顶部选择部署的资源栈所在地域,找到资源栈,然后在其右侧操作列,单击删除。
在删除资源栈对话框,选择删除方式为释放资源,然后单击确定,根据提示完成资源释放。
清理手动创建的资源
在本方案中,您创建多个云资源实例。测试完方案后,您可以参考以下规则处理对应产品的实例,避免继续产生费用:
删除百炼应用:
在应用管理页面,找到前面步骤中创建的应用,然后单击右下角
,在下拉列表中点击删除应用。