W-异步编排+消息队列+轮询
需求背景
背景:业务需要对接中台的功能,实现根据excel文件 + 当前工程信息,得出该excel文件的相关特点,以供后续分析。
特点:高并发,中台并发量有限,需要业务端控制。
解决方案
采用异步编排+消息队列+轮询
异步编排
执行的功能主要分成三个步骤:
- 解析excel文件,调用中台智能分析接口
- 进一步处理解析后的文件以及当前工程文件,处理成业务需要的形式
- 根据上述两步的结果,拼接返回新的结果给前端。
特点:步骤1,步骤2执行时不会相互影响,并且步骤3的结果依赖1, 2。
所以使用CompletableFuture异步编排,分别分配线程运行1 2。然后1 2 都运行完以后运行3
1 | 代码示例: |
消息队列 + 轮询
针对高并发场景,多个用户同一时间点击其功能,缓解中台的压力并且保证用户执行以后不会无效。
因为服务是集群的,所以如果用线程池,每个线程池只控制该服务器。比如线程池最大线程数10,如果集群机器数是10,发送给中台的请求可能到10*10=100条。
消息队列:保证用户请求(消息)都能到中台,中台把解析结果存放在redis中,这边轮询查找。
补充
AI相关概念:
prompt:给AI的提示
Token:模型用来表示自然语言文本的基本单位,可以直观的理解为“字”或“词”;通常一个中文词语、一个英文单词、一个标点符号位一个Token。(任何大模型都有单次提问token的限制,所以题目和选项数不能太多,太多的话需要分批生成不过该项目不涉及到这个问题,不是大模型问答
)
评论