fastbee/docs/knowledge-base/01-architecture.md
2026-05-25 20:44:59 +08:00

4.8 KiB
Raw Permalink Blame History

整体架构

项目定位

FastBee 是基于若依 v3.8.5 改造的物联网平台,覆盖设备接入、产品/物模型管理、数据采集、规则引擎、通知、视频监控、SCADA/GoView 可视化和移动端。

技术栈

层 技术
后端框架 Spring Boot 2.5.14, Spring Security, JWT
ORM/数据访问 MyBatis Plus, MyBatis XML Mapper, PageHelper
数据源 MySQL 主库,动态数据源,可选 TDengine
缓存/锁 Redis, Redisson, Lock4j
协议接入 Netty MQTT/TCP/UDP/HTTP/CoAP, SIP GB28181
规则引擎 LiteFlow, Groovy 脚本
消息通道 本地 LinkedBlockingQueue 队列族,MQTT/EMQX 或内嵌 Broker
前端 Vue 2 + Element UI, Vue 3 + Vite + Naive UI, UniApp + uView

后端模块分层

fastbee-admin
  -> fastbee-framework
  -> fastbee-open-api
  -> fastbee-server/boot-strap
  -> fastbee-service/*
  -> fastbee-iot-data
  -> fastbee-mq
  -> fastbee-notify/*
  -> fastbee-plugs/*
  -> fastbee-common
模块 职责
fastbee-admin Spring Boot 主入口,端口默认 8080,聚合 Web/API/协议/插件依赖。
fastbee-framework 若依框架层:安全、鉴权、Web 配置、数据源、拦截器、通用基础设施。
fastbee-common 公共 DTO、枚举、工具、注解、Redis Key、MQ 消息模型、协议通用模型。
fastbee-open-api 对外 REST Controller,覆盖设备、产品、物模型、规则、视频、通知等业务 API。
fastbee-service/fastbee-system-service 系统管理服务:用户、角色、菜单、部门、字典、参数、日志。
fastbee-service/fastbee-iot-service IoT 核心业务:产品、设备、物模型、场景、规则、告警、Modbus、网关、固件。
fastbee-server Netty/SIP 协议服务集合:基础 Server、MQTT Broker、TCP/UDP/HTTP/CoAP/SIP、启动装配。
fastbee-protocol 协议抽象和具体编解码实现,如 Modbus、JSON、自定义采集协议、OTA 包。
fastbee-iot-data 设备数据处理层:上报处理、下发处理、规则触发、TDengine 日志、OTA、设备消息发布。
fastbee-mq 设备消息通道封装,当前核心是 JVM 内本地阻塞队列和消息生产入口。
fastbee-notify 通知配置、模板、日志和发送通道实现,包含邮件、短信、微信、钉钉等。
fastbee-plugs 插件能力:Quartz、代码生成、OSS、Forest HTTP、OAuth、MQTT Client、LiteFlow 扩展、支付。
fastbee-record 独立视频录像/回调服务,入口 ZlmRecordApplication,与 ZLMediaKit 配合使用。

启动入口与条件装配

  • 主应用入口:fastbee-admin/src/main/java/com/fastbee/FastBeeApplication.java。
  • @SpringBootApplication 扫描 com.fastbee 包下所有模块 Bean。
  • @ForestScan(basePackages = "com.fastbee") 扫描 Forest HTTP 客户端。
  • 协议服务由 fastbee-server/boot-strap 按配置条件创建 Netty Server Bean:
    • server.broker.enabled=true:启动内嵌 MQTT Broker 和 WebSocket MQTT。
    • server.tcp.enabled=true:启动 TCP 服务,默认 8888。
    • server.http.enabled=true:启动 HTTP 设备接入服务,默认 8081。
    • server.coap.enabled=true:启动 CoAP 服务,默认 5683。
    • sip.enabled=true:启动 GB28181 视频接入。

前端组成

应用 目录 技术 角色
管理后台 yack-web Vue 2, Element UI, Vuex 运维/管理端,覆盖系统、设备、产品、规则、告警等后台功能。
低代码可视化 yack-view Vue 3, TypeScript, Vite, Naive UI, Pinia GoView 风格大屏和项目可视化编辑器。
移动端 yack-app UniApp, uView 2.0, MQTT.js App/小程序/H5 设备查看、控制和移动操作。

配置中心

文件 重点
fastbee-admin/src/main/resources/application.yml 端口、协议服务开关、JWT、MyBatis Plus、Redisson、Forest、LiteFlow SQL 规则源。
fastbee-admin/src/main/resources/application-dev.yml 本地 MySQL、Redis、MQTT、EMQX、SIP、Swagger 配置。
fastbee-admin/src/main/resources/application-prod.yml 生产环境覆盖配置。
fastbee-admin/src/main/resources/application-sql.yml SQL 相关配置。

数据与依赖边界

Controller(open-api/admin/plugs)
  -> Service(fastbee-iot-service/system-service/notify/sip/oss)
  -> Mapper XML
  -> MySQL / TDengine

Protocol Server(Netty/SIP/MQTT)
  -> fastbee-mq queue
  -> fastbee-iot-data handler
  -> IoT Service + Rule Engine + Log Service
  -> MQTT/WebSocket/DB/Notify

fastbee-common 不应反向依赖业务模块;fastbee-framework 提供框架装配;业务 Controller 优先调用 Service 接口,不直接写复杂 SQL。