环境要求
大约 2 分钟frameworkintro
运行环境要求
- Java: 17
- NodeJs: 18
- Maven: 3.8+
- MySql: 5.7+
- Redis: 5.0+
- TDengine 3.x
- InfluxDB: 1.8.x+
- IoTDB 1.3.x
Java17与NodeJs18的说明
- 由于采用Java17,Java 模块化系统(Java Module System)的安全限制导致的针对反射等场景有可能会出现如下错误:
Cause: java.lang.reflect.InaccessibleObjectException: Unable to make field protected java.lang.reflect.InvocationHandler java.lang.reflect.Proxy.h accessible: module java.base does not "opens java.lang.reflect" to unnamed module @223aa2f7
- 解决方案:在启动参数中添加
--add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED
- 如:
java --add-opens java.base/java.lang=ALL-UNNAMED -jar your-application.jar
- 如:
- 由于采用NodeJs18,OpenSSL3.0对算法和秘钥大小增加了更为严格的限制,可能会导致安装失败或打包失败出现如下错误:
Error: error:0308010C:digital envelope routines::unsupported
- 解决方案:在ide的终端执行如下命令
- Linux & Mac OS:
export NODE_OPTIONS=--openssl-legacy-provider
- Windows:
set NODE_OPTIONS=--openssl-legacy-provider
- Linux & Mac OS:
项目目录结构
BladeX-Links
├── blade-core -- 核心模块
│ ├── blade-links-base -- 基础工具和通用组件
│ ├── blade-links-core -- 核心业务逻辑和功能实现
│ ├── blade-broker-core -- 消息代理核心接口和抽象类
│ ├── blade-broker-local -- 本地消息代理实现
│ ├── blade-broker-cluster -- 集群消息代理实现
│ ├── blade-data-core -- 数据处理核心组件
│ ├── blade-mq-api -- 消息队列API接口定义
│ ├── blade-mq-kafka -- Kafka消息队列实现
│ ├── blade-tsdb-api -- 时序数据库API接口定义
│ ├── blade-tsdb-influxdb -- InfluxDB时序数据库实现
│ ├── blade-tsdb-influxdb2 -- InfluxDB 2.x时序数据库实现
│ ├── blade-tsdb-iotdb -- Apache IoTDB时序数据库实现
│ └── blade-tsdb-tdengine -- TDengine时序数据库实现
├── blade-service -- 业务服务模块
│ ├── blade-broker -- 消息代理服务,处理设备连接和消息路由
│ ├── blade-server -- 服务器核心功能,提供API和业务逻辑
│ └── blade-data -- 数据处理服务,负责集群环境的数据存储和分析
├── blade-demo -- 示例和演示模块
│ ├── device-simulator -- 设备模拟器,用于测试和演示
│ ├── relay-mqtt -- MQTT协议中继示例
│ └── relay-amqp -- AMQP协议中继示例
└── script -- 部署和运维脚本