tree: 874d42119485413411bd3354206018ba889a021a
  1. common-session-consistency/
  2. docs/
  3. llm-agent/
  4. web-gateway/
  5. pom.xml
  6. README.md
example/rocketmq-multiagent-session-consistency/README.md

Quick Start

本案例展示了基于 Apache RocketMQ 的LiteTopic为分布式 Web 应用的长连接会话管理提供的一种高效解决方案。(实现了跨节点会话状态的一致性)

整体架构图

基本的前期准备工作

1. 部署 Apache RocketMQ

部署 Apache RocketMQ 的 LiteTopic 版本(关于开源版本,预计在2月发布),或购买支持 LiteTopic 的 RocketMQ 商业版实例,并创建以下资源:

  • 1.1 创建接收响应请求的轻量级Topic:WorkerAgentResponse(web-gateway用于接收响应结果)
  • 1.2 创建与WorkerAgentResponse 绑定的轻量级消费者CID:CID_HOST_AGENT_LITE(web-gateway中用于订阅WorkerAgentResponse)
  • 1.3 创建普通Topic:LLM_TOPIC(llm-agent用于接收任务请求)
  • 1.4 创建普通消费者CID:LLM_CID(llm-agent中用于订阅LLM_TOPIC)

2. 以下示例以阿里云百炼平台提供的Qwen大模型调用服务为例。欢迎社区开发者贡献来自其他厂商的更多集成案例。

  1. 进入阿里云百炼平台
  2. 获取对应调用服务的apiKey

运行环境

  • JDK 17 及以上
  • Maven 3.9 及以上

代码打包与示例运行

1. 编译打包

mvn clean install -Dmaven.test.skip=true -Dcheckstyle.skip=true

以下4个进程建议分别在不同的窗口中运行

2. 基本参数介绍

参数名称基本介绍是否必填
rocketMQEndpointrocketmq服务接入点
rocketMQNamespacerocketmq命名空间
bizTopic普通Topic,llm-agent用于接收任务请求的Topic
bizConsumerGroup普通消费者CID,llm-agent用于订阅普通Topic
rocketMQAKrocketmq账号
rocketMQSKrocketmq密码
apiKey百炼平台调用apiKey
workAgentResponseTopic轻量Topic,web-gateway用于接收响应结果的Topic
workAgentResponseGroupID轻量消费者ID,web-gateway用于订阅轻量Topic
agentTopic普通Topic,llm-agent接收请求的Topic

3.运行llm-agent

cd llm-agent/target
java -DrocketMQEndpoint= -DrocketMQNamespace= -DrocketMQAK= -DrocketMQSK= -DbizTopic=LLM_TOPIC -DbizConsumerGroup=LLM_CID -DapiKey= -jar llm-agent-2.1.1-SNAPSHOT.jar

4.运行web-gateway (监听9090端口)

cd web-gateway/target
java -DrocketMQEndpoint= -DrocketMQNamespace= -DworkAgentResponseTopic=WorkerAgentResponse -DworkAgentResponseGroupID=CID_HOST_AGENT_LITE -DrocketMQAK= -DrocketMQSK= -DagentTopic=LLM_TOPIC -jar web-gateway-2.1.1-SNAPSHOT.jar --server.port=9090

5.运行web-gateway (监听9191端口)

cd web-gateway/target
java -DrocketMQEndpoint= -DrocketMQNamespace= -DworkAgentResponseTopic=WorkerAgentResponse -DworkAgentResponseGroupID=CID_HOST_AGENT_LITE -DrocketMQAK= -DrocketMQSK= -DagentTopic=LLM_TOPIC -jar web-gateway-2.1.1-SNAPSHOT.jar --server.port=9191

6.运行web-gateway (监听9292端口)

cd web-gateway/target
java -DrocketMQEndpoint= -DrocketMQNamespace= -DworkAgentResponseTopic=WorkerAgentResponse -DworkAgentResponseGroupID=CID_HOST_AGENT_LITE -DrocketMQAK= -DrocketMQSK= -DagentTopic=LLM_TOPIC -jar web-gateway-2.1.1-SNAPSHOT.jar --server.port=9292

7.开始体验

  • 打开浏览器,访问 http://localhost:9090
  • 点击“重连会话”按钮,即可在节点切换过程中实现无缝会话恢复与数据续传