跳至主要內容
【BI】⑦引入RabbitMQ

交换机

1.direct交换机

绑定:允许我们将交换机和队列关联起来,并指定交换机将哪种类型的消息发送给哪个队列(类似计算机网络中两个路由器或网络设备相互连接的情况,也可以理解为网线)。

routingKey:路由键,控制消息要转发给哪个队列的(IP 地址)。

特点:消息会根据路由键转发到指定的队列。

场景:特定的消息只交给特定的系统(程序)来处理绑定关系:完全匹配字符串。

示例场景:发日志的场景,希望用独立的程序来处理不同级别的日志,比如 C1 系统处理 error 日志,C2 系统处理其他级别的日志。


holic-x...大约 50 分钟项目bi-platform
【BI】项目总结

bi-platform 项目源码:master(主分支)、dev(开发版本:扩展)

项目简介

​ 基于React + Spring Boot + MQ + AIGC的智能数据分析平台。区别于传统BI,用户只需要导入原始数据集、并输入分析诉求,就能自动生成可视化图表及分析结论,实现数据分析的降本增效。

​ 在传统的数据分析平台中,如果想要分析近一年网站的用户增长趋势, 通常需要手动导入数据、选择要分析的字段和图表,并由专业的数据分析师完成分析,最后得出结论。然而,本次设计的项目与传统平台有所不同。在这个项目中,用户只需输入想要分析的目标,并上传原始数据,系统将利用AI自动生成可视化图表和学习的分析结论。这样,即使是对数据分析不通的人也能轻松使用该系统。


holic-x...大约 6 分钟项目bi-platform
【BI】⑥分布式消息队列

需求分析

​ 首先,来探讨一下目前系统存在的不足。目前系统已经完成从同步到异步的转变。为什么需要改变呢?因为Al模型分析速度较慢,生成图表可能需要几秒或更长的时间。虽然OpenAl最近已经优化了欺工智能服务的效率,但当系统用户量大时,可能出现系统资源不足或AI服务生成速度跟不上的情况,这会导致系统瓶颈。

​ 因此,我们采用异步处理,以提高户体验、及时反馈。目前,我们的异步实现依赖于本地线程池。这里的"本地” 值得深思:本地线程池会存在哪些问题?比如,假设Al服务限制只能有两个用户同时使用,那么单个线程池最大核心线程数为2即可。但如果系统需求量增大,后端从单服务器部署扩展到多服务器,每个服务器都需要一个线程池。 这样,在三个服务器的情况下,可能就有六个线程同时使用AI务,超过了服务的限制。这就是我们目前的问题:无法集中限制,只能进行单机限制。


holic-x...大约 45 分钟项目bi-platform
【BI】⑤系统优化

系统问题分析

系统问题分析总结

​ 问题场景:面临服务处理能力有限,或者接口处理(或返回)时长较长时,就应该考虑采用异步化。

​ 具体来看,可能会遇到以下问题:

(1)用户等待时间过长:这是因为需要等待AI生成结果

(2)业务服务器可能面临大量请求处理,导致系统资源紧张,严重时甚至可能导致服务器宕机或无法处理新的请求

(3)调用的第三方服务(Al能力)的处理能力有限。比如每3秒只能处理1个请求,就会导致Al处理不过来;严重时,Al可能会对我们的后台系统拒绝服务


holic-x...大约 48 分钟项目bi-platform
【BI】④图表管理

需求分析

​ 图表管理:基于图表信息的CRUD。可参考此前或者现有项目的一些实现,完善前后端功能

实现步骤

1.后端构建

​ 参考现有项目实现,完成后端接口的CRUD

2.前端构建

(1)页面构建

构建步骤说明

【1】创建路由(修改config/routes.ts文件:配置图表信息列表路由)

【2】新增组件(src/pages新增MyChart组件:新增MyChart文件夹、新建index.tsx文件(可以参考前面创建AddChart))


holic-x...大约 29 分钟项目bi-platform
【BI】③智能分析业务

需求分析

业务流程分析

【1】用户输入

  • 分析目标
  • 上传原始数据(excel)
  • 更精细化地控制图表:比如图表类型、图表名称等

【2】后端校验

  • 校验用户的输入否合法(此如长度)
  • 成本控制(次数统计和校验、鉴权等)

【3】把处理后的数据输入给Al模型(调用Al接口),让AI模型给系统提供图表信息、结论文本

【4】图表信息(是一段json配置、是一段代码)、结论文本在前端进行展示


holic-x...大约 22 分钟项目bi-platform
【BI】②项目构建

前端项目构建

1.项目初始化

构建前端项目,搭建基于react的ant design pro项目脚手架,注意项目版本依赖问题(如果nodejs版本不兼容则适当调整即可)

# 使用 npm 加载脚手架
npm i @ant-design/pro-cli -g
# 创建前端项目
pro create bi-platform-frontend

# 选择umi版本(可以尝试umi4踩新坑,umi3提示选择简单还是全量脚手架),原使用umi3 simple

# 进入指定项目安装项目依赖
cd bi-platform-frontend
tyarn 或者 npm install

# 脚手架初始完成,进入开发状态
npm run start

# 项目启动完成访问http://localhost:8000/,第一次初始化加载会比较慢


holic-x...大约 11 分钟项目bi-platform
【BI】①项目概要

项目简介

​ 基于React + Spring Boot + MQ + AIGC的智能数据分析平台。区别于传统BI,用户只需要导入原始数据集、并输入分析诉求,就能自动生成可视化图表及分析结论,实现数据分析的降本增效。

​ 在传统的数据分析平台中,如果想要分析近一年网站的用户增长趋势, 通常需要手动导入数据、选择要分析的字段和图表,并由专业的数据分析师完成分析,最后得出结论。然而,本次设计的项目与传统平台有所不同。在这个项目中,用户只需输入想要分析的目标,并上传原始数据,系统将利用AI自动生成可视化图表和学习的分析结论。这样,即使是对数据分析不通的人也能轻松使用该系统。


holic-x...大约 3 分钟项目bi-platform