Skip to content

Commit e5fa353

Browse files
docs: 新增 2.1.2 版本文档
- 新增 versioned_docs/version-2.1.2 完整文档 - 新增 versioned_sidebars/version-2.1.2-sidebars.json - 2.1.2 配置说明:license、proxy、pool.waitStrategy、logLevel - 更新 config/read.md、config/license.md(FCP 与 proxy) - 新增文档截图说明 docs-screenshot-guide.md - 安装/API/Endpoint 等版本号更新为 2.1.2 Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent 234af10 commit e5fa353

134 files changed

Lines changed: 14948 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

versioned_docs/version-2.1.2/CHANGELOG.md

Lines changed: 476 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
# FAQ
2+
3+
## 采用MYSQL数据库存储,如何从`2.0.19`版本升级到`2.1.0`?
4+
5+
在2.0.19版本存储的数据库中执行一下指令即可:
6+
```sql
7+
8+
ALTER TABLE `PolicyModel` ADD `f_http_model` TEXT;
9+
10+
ALTER TABLE `LogTrace` ADD `f_timezone` int(5) DEFAULT 0;
11+
12+
ALTER TABLE `ProxySubConfig` ADD `f_enable` bit(1) DEFAULT 0;
13+
14+
-- 2.1.0 新增离线消息表
15+
CREATE TABLE IF NOT EXISTS `OfflineMessage` (
16+
`id` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
17+
`f_client_id` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
18+
`f_topic` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
19+
`f_qos` tinyint(5) NOT NULL,
20+
`f_retain` bit(1) NOT NULL,
21+
`f_payload` blob NOT NULL,
22+
`f_timestamp` bigint(20) NOT NULL,
23+
`f_node_ip` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
24+
PRIMARY KEY (`id`) USING BTREE,
25+
KEY `idx_client_id` (`f_client_id`) USING BTREE,
26+
KEY `idx_timestamp` (`f_timestamp`) USING BTREE
27+
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
28+
29+
-- 2.1.0 新增规则引擎性能监控表
30+
CREATE TABLE IF NOT EXISTS `RuleEngineMetrics` (
31+
`id` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
32+
`f_rule_id` varchar(60) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,
33+
`f_execution_count` bigint(20) DEFAULT 0,
34+
`f_execution_time` bigint(20) DEFAULT 0,
35+
`f_error_count` bigint(20) DEFAULT 0,
36+
`f_timestamp` bigint(20) NOT NULL,
37+
PRIMARY KEY (`id`) USING BTREE,
38+
KEY `idx_rule_id` (`f_rule_id`) USING BTREE,
39+
KEY `idx_timestamp` (`f_timestamp`) USING BTREE
40+
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
41+
42+
```
43+
44+
## 集群新增节点、下线节点需要重启集群吗?
45+
46+
当集群新增节点时候,只需要新增的节点配置已启动集群节点的任一IP,即可完成集群的动态接入,无需重源节点机器
47+
48+
## FluxMQ同一个ClientID集群中可以重复连接吗?
49+
50+
FluxMQ默认同一集群采用互踢策略,一个ClientID同一时间只允许一个在线,后者会将前者剔除下线
51+
52+
## 部署集群安全组需要打开哪些端口?
53+
- 48880 集群eventbus内部通信端口
54+
- 48500 缓存同步端口
55+
- 47100 集群内部通信端口
56+
57+
58+
## 支持proxy_protocol透传客户端ip等信息吗?
59+
60+
FluxMQ支持开启proxy_protocol解析,解析后的连接的ip会自动被proxy_protocol头携带的源IP覆盖
61+
62+
```YAML
63+
mqtt: # tcp配置
64+
port: 1887 # mqtt端口号
65+
wiretap: false # 二进制日志 前提是 logLevel = DEBUG
66+
messageMaxSize: 4194304 # 接收消息的最大限制 默认4194304(4M)
67+
proxy: false # 默认false, 支持HAProxy协议解析
68+
options:
69+
SO_BACKLOG: 2000
70+
```
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# LICENSE
2+
3+
## License启动
4+
5+
获取License后,放在项目启动的目录,服务器会自动加载License信息。FluxMQ默认提供100连接的免费接入,安装包下载后自带免费License,如需更多接入数请联系我们获取商业License!
6+
7+
## 联系方式
8+
9+
商务电话(微信):13218040662
Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
---
2+
slug: /
3+
---
4+
5+
# FluxMQ 文档
6+
7+
欢迎使用 FluxMQ 2.1.2 版本!
8+
9+
## 版本概述
10+
11+
FluxMQ 2.1.2 是在 2.1.1 版本基础上的功能增强与修复版本,为用户提供更强大、更稳定的物联网消息处理能力。
12+
13+
## 主要新功能
14+
15+
### 🚀 规则引擎增强
16+
- **新增数据源支持**:ClickHouse、Pulsar、RocketMQ、TDengine、MongoDB、InfluxDB、Elasticsearch
17+
- **性能优化**:批量处理性能提升35%,内存使用优化20%
18+
- **监控增强**:动作执行监控和性能指标收集
19+
- **错误处理**:更完善的错误处理和重试机制
20+
- **规则管理**:支持规则批量导入导出和版本管理
21+
22+
### 🔧 配置管理改进
23+
- **配置验证**:增强的配置验证和错误提示
24+
- **热重载**:支持配置热重载,无需重启服务
25+
- **配置模板**:提供常用配置模板
26+
27+
### 📊 可观测性提升
28+
- **指标收集**:更丰富的性能指标和监控数据
29+
- **日志优化**:结构化日志输出,便于分析
30+
- **告警机制**:内置告警规则和通知机制
31+
32+
### 🔐 安全增强
33+
- **认证鉴权**:支持多种认证方式,包括OAuth2.0、JWT、多因子认证
34+
- **ACL 功能**:细粒度的访问控制和角色基础访问控制
35+
- **加密传输**:支持 TLS/SSL 加密
36+
- **API安全**:支持API访问限制和权限控制
37+
38+
## 快速开始
39+
40+
### 安装部署
41+
42+
选择合适的安装方式:
43+
44+
- [Linux 安装](install/Linux.md)
45+
- [Windows 安装](install/Windows.md)
46+
- [MacOS 安装](install/MacOS.md)
47+
- [Docker 安装](install/docker.md)
48+
- [Kubernetes 部署](install/kubernetes.md)
49+
50+
### 基础配置
51+
52+
1. [配置文件说明](config/read.md)
53+
2. [MQTT 配置](config/mqtt.md)
54+
3. [集群配置](config/cluster.md)
55+
56+
### 功能使用
57+
58+
1. [规则引擎](gzyq/rule/README.md)
59+
2. [数据存储](gzyq/action/README.md)
60+
3. [认证鉴权](auth/before.md)
61+
62+
## 版本特性
63+
64+
### 性能提升
65+
66+
- **吞吐量提升**:相比 2.0.x 版本,消息处理吞吐量提升 50%
67+
- **延迟优化**:消息处理延迟降低 60%
68+
- **内存优化**:内存使用效率提升 40%
69+
- **连接数提升**:支持12万并发连接
70+
71+
### 稳定性改进
72+
73+
- **错误恢复**:增强的错误恢复机制
74+
- **故障转移**:改进的集群故障转移
75+
- **数据一致性**:更强的数据一致性保证
76+
77+
### 开发体验
78+
79+
- **API 改进**:更简洁的 API 设计
80+
- **文档完善**:详细的配置和使用文档
81+
- **示例丰富**:提供丰富的使用示例
82+
83+
## 兼容性说明
84+
85+
### 向后兼容
86+
87+
- 所有 2.0.x、2.1.0 和 2.1.1 版本的配置文件和 API 保持兼容
88+
- 现有规则引擎配置无需修改
89+
- 数据源配置保持兼容
90+
- 集群配置保持兼容
91+
92+
### 升级建议
93+
94+
- 建议在测试环境验证后再升级生产环境
95+
- 备份重要配置和数据
96+
- 查看 [升级指南](upgrade.md) 了解详细步骤
97+
98+
## 技术支持
99+
100+
### 文档资源
101+
102+
- [产品介绍](product/introduction.md)
103+
- [核心概念](product/core.md)
104+
- [常见问题](FAQ.md)
105+
- [更新日志](CHANGELOG.md)
106+
107+
### 社区支持
108+
109+
- GitHub Issues:报告问题和功能请求
110+
- 技术论坛:技术讨论和经验分享
111+
- 邮件支持:企业用户技术支持
112+
113+
## 许可证
114+
115+
FluxMQ 采用 [Apache License 2.0](License.md) 开源许可证。
116+
117+
---
118+
119+
感谢您选择 FluxMQ!如果您在使用过程中遇到任何问题,请随时联系我们。
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# 介绍
2+
3+
ACL访问控制可以用来控制客户端的发布订阅权限,保证数据的安全传输。
4+
5+
### ACL拦截规则
6+
![acl.png](@site/static/images/acl/acl.png)
7+
8+
9+
当客户端建立连接后,会加载ACL缓存(默认60S定时刷新),客户端发布订阅后,会根据其主题匹配是否存在`deny`规则,如果不存在`deny`规则,则ACl检查通过
10+
,如果存在Deny规则,再去检查是否存在`allow`规则,如果存在`allow`规则,acl检查通过,否则失败。
11+
12+
13+
## ACL参数
14+
15+
16+
| **配置项** | **释义** |
17+
|---------|-----------------------------------------------------------------------------|
18+
| acl_strategy | 控制策略: <br/> allow 允许 <br/> deny 拒绝 |
19+
| acl_type | acl类型: <br/> ip 客户端ip <br/> clientId 客户端id <br/> user 用户名 <br/> all 所有客户端 |
20+
| acl_action | acl动作K <br/> publish 发布 <br/> subscribe 订阅 <br/> pubsub 发布订阅 |
21+
| topic | 主题TOPIC,支持通配符(# 多级;+ 单级),支持占位符( 客户端ID: `${clientId}`; 用户名: `${user}`) |
22+
| subject | acl类型对应的acl实体内容 |
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# 文件配置
2+
3+
通过配置文件方式去加载ACL规则,当规则发生变化后,实时更新ACL缓存,支持配置多个ACL规则。
4+
5+
![img.png](@site/static/images/acl/config.png)
6+
7+
## 配置
8+
9+
輸入框依次代表的是 `acl_type``subject``topic``acl_action``acl_strategy`,具体配置
10+
请查看 [ACL介绍](before)
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# http配置
2+
3+
通过HTTP配置方式去加载ACL规则,FluxMQ会定时去刷新ACL缓存,实现ACL缓存的热更新。
4+
5+
![img.png](@site/static/images/acl/http.png)
6+
7+
## ACL拦截规则
8+
9+
![acl.png](@site/static/images/acl/acl.png)
10+
当客户端建立连接后,会加载ACL缓存(默认60S定时刷新),客户端发布订阅后,会根据其主题匹配是否存在`deny`规则,如果不存在`deny`
11+
规则,则ACl检查通过
12+
,如果存在Deny规则,再去检查是否存在`allow`规则,如果存在`allow`规则,acl检查通过,否则失败。
13+
14+
## 配置
15+
16+
| **配置项** | **释义** |
17+
|---------|---------------------------------------------------|
18+
| 请求地址 | 请求acl的配置的地址 |
19+
| 请求方法 | 默认只支持`POST`请求 |
20+
| 请求参数 | 默认不携带参数,用户可以配置固定参数作为请求Body,传输使用`application/json` |
21+
| header | 默认不携带header |
22+
| 加载周期 | 定时去数据库刷新ACL缓存 |
23+
24+
## 返回参数
25+
26+
> 必须按照以下格式以及字段返回参数
27+
28+
```JSON
29+
[
30+
{
31+
"aclStrategy": "allow",
32+
"aclType": "all",
33+
"action": "publish",
34+
"topic": "test/test/#",
35+
"subject": "*"
36+
},
37+
{
38+
"aclStrategy": "allow",
39+
"aclType": "ip",
40+
"action": "publish",
41+
"topic": "test/test/#",
42+
"subject": "192.168.10.111"
43+
}
44+
]
45+
```
46+
47+
具体字段配置请查看 [ACL介绍](before)
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# sql配置
2+
3+
通过SQL配置方式去加载ACL规则,当外部数据库ACL规则发生变化后,FluxMQ会定时去刷新ACL缓存,实现ACL缓存的热更新。
4+
5+
![img.png](@site/static/images/acl/sql.png)
6+
7+
## ACL拦截规则
8+
![acl.png](@site/static/images/acl/acl.png)
9+
当客户端建立连接后,会加载ACL缓存(默认60S定时刷新),客户端发布订阅后,会根据其主题匹配是否存在`deny`规则,如果不存在`deny`规则,则ACl检查通过
10+
,如果存在Deny规则,再去检查是否存在`allow`规则,如果存在`allow`规则,acl检查通过,否则失败。
11+
12+
13+
## 配置
14+
15+
| **配置项** | **释义** |
16+
|---------|----------------|
17+
| 驱动 | 选择对应数据库的jdbc驱动 |
18+
| 连接地址 | 数据库的连接地址 |
19+
| 用户名 | 数据库用户名 |
20+
| 密码 | 数据库密码 |
21+
| 加载sql | 详情见如下`SQL配置` |
22+
| 加载周期 | 定时去数据库刷新ACL缓存 |
23+
24+
## SQL配置
25+
26+
> 查询时必须返回 `subject` ,`acl_type`,`topic`,`acl_strategy`,`acl_action` 字段
27+
> 如果数据库字段有区分,请使用别名。
28+
29+
默认sql如下:
30+
```SQL
31+
select subject,acl_type,topic,acl_strategy,acl_action from acl
32+
```
33+
具体字段配置请查看 [ACL介绍](before)
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# 客户端查询
2+
3+
## 连接查询接口
4+
5+
| **参数名** | **参数说明** |
6+
|--------------|--------------------------------------|
7+
| PATH | POST http://ip:8080/api/check |
8+
| Context-Type | application/json |
9+
10+
### Request Body
11+
12+
```json
13+
{
14+
"clientId": "A12312321313123"
15+
}
16+
```
17+
18+
### Response
19+
20+
> code为0时成功
21+
22+
```json
23+
24+
{
25+
"code" : 0,
26+
"data": [{
27+
"clientIp": "192.168.0.100",
28+
"nodeIp": "127.0.0.1",
29+
"version": "MQTT_3_1",
30+
"keepalive": 120,
31+
"cleanSession": false,
32+
"auth": {
33+
"username": "fluxmq",
34+
"password": "fluxmq"
35+
},
36+
"will": {
37+
"isRetain": false,
38+
"willTopic": "willTest",
39+
"willQos": 1,
40+
"willMessage": ""
41+
},
42+
"timestamp": "1690599987495",
43+
"clientId": "A1212313"
44+
}]
45+
}
46+
47+
```
48+

0 commit comments

Comments
 (0)