本案例展示了基于 Apache RocketMQ 的LiteTopic为分布式 Web 应用的长连接会话管理提供的一种高效解决方案。(实现了跨节点会话状态的一致性)
部署 Apache RocketMQ 的 LiteTopic 版本(关于开源版本,预计在2月发布),或购买支持 LiteTopic 的 RocketMQ 商业版实例,并创建以下资源:
WorkerAgentResponse(web-gateway用于接收响应结果)WorkerAgentResponse 绑定的轻量级消费者CID:CID_HOST_AGENT_LITE(web-gateway中用于订阅WorkerAgentResponse)LLM_TOPIC(llm-agent用于接收任务请求)LLM_CID(llm-agent中用于订阅LLM_TOPIC)mvn clean install -Dmaven.test.skip=true -Dcheckstyle.skip=true
以下4个进程建议分别在不同的窗口中运行
| 参数名称 | 基本介绍 | 是否必填 |
|---|---|---|
| rocketMQEndpoint | rocketmq服务接入点 | 是 |
| rocketMQNamespace | rocketmq命名空间 | 否 |
| bizTopic | 普通Topic,llm-agent用于接收任务请求的Topic | 是 |
| bizConsumerGroup | 普通消费者CID,llm-agent用于订阅普通Topic | 是 |
| rocketMQAK | rocketmq账号 | 否 |
| rocketMQSK | rocketmq密码 | 否 |
| apiKey | 百炼平台调用apiKey | 是 |
| workAgentResponseTopic | 轻量Topic,web-gateway用于接收响应结果的Topic | 是 |
| workAgentResponseGroupID | 轻量消费者ID,web-gateway用于订阅轻量Topic | 是 |
| agentTopic | 普通Topic,llm-agent接收请求的Topic | 是 |
cd llm-agent/target
java -DrocketMQEndpoint= -DrocketMQNamespace= -DrocketMQAK= -DrocketMQSK= -DbizTopic=LLM_TOPIC -DbizConsumerGroup=LLM_CID -DapiKey= -jar llm-agent-2.1.1-SNAPSHOT.jar
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
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
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