Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
mica
mica-mqtt
提交
d5b582da
mica-mqtt
项目概览
mica
/
mica-mqtt
通知
71
Star
1
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
mica-mqtt
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
d5b582da
编写于
2月 19, 2022
作者:
浅梦2013
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
✨
mica-mqtt server、client 添加 statEnable 配置,默认关闭。
上级
8dc973cf
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
83 addition
and
27 deletion
+83
-27
CHANGELOG.md
CHANGELOG.md
+6
-0
mica-mqtt-core/src/main/java/net/dreamlu/iot/mqtt/core/client/MqttClientCreator.java
...a/net/dreamlu/iot/mqtt/core/client/MqttClientCreator.java
+20
-1
mica-mqtt-core/src/main/java/net/dreamlu/iot/mqtt/core/server/MqttServerCreator.java
...a/net/dreamlu/iot/mqtt/core/server/MqttServerCreator.java
+23
-4
mica-mqtt-spring-boot-starter/README.md
mica-mqtt-spring-boot-starter/README.md
+22
-20
mica-mqtt-spring-boot-starter/src/main/java/net/dreamlu/iot/mqtt/spring/client/MqttClientConfiguration.java
...eamlu/iot/mqtt/spring/client/MqttClientConfiguration.java
+2
-1
mica-mqtt-spring-boot-starter/src/main/java/net/dreamlu/iot/mqtt/spring/client/MqttClientProperties.java
.../dreamlu/iot/mqtt/spring/client/MqttClientProperties.java
+4
-0
mica-mqtt-spring-boot-starter/src/main/java/net/dreamlu/iot/mqtt/spring/server/MqttServerConfiguration.java
...eamlu/iot/mqtt/spring/server/MqttServerConfiguration.java
+2
-1
mica-mqtt-spring-boot-starter/src/main/java/net/dreamlu/iot/mqtt/spring/server/MqttServerProperties.java
.../dreamlu/iot/mqtt/spring/server/MqttServerProperties.java
+4
-0
未找到文件。
CHANGELOG.md
浏览文件 @
d5b582da
# 变更记录
## 发行版本
### v1.2.8 - 2022-02-20
-
:sparkles: mica-mqtt server 优化连接 connect 日志。
-
:sparkles: mica-mqtt server 代码优化。
-
:sparkles: mica-mqtt server 添加 statEnable 配置,默认关闭,开启 Prometheus 监控,需要设置为 true。
-
:sparkles: mica-mqtt client 添加 statEnable 配置,默认关闭。
### v1.2.7 - 2022-02-13
-
:sparkles: mica-mqtt-spring-boot-starter 完善。
-
:sparkles: mica-mqtt client 考虑一开始就没有连接上服务端的情况。
...
...
mica-mqtt-core/src/main/java/net/dreamlu/iot/mqtt/core/client/MqttClientCreator.java
浏览文件 @
d5b582da
...
...
@@ -145,6 +145,10 @@ public final class MqttClientCreator {
* messageId 生成器
*/
private
IMqttClientMessageIdGenerator
messageIdGenerator
;
/**
* 是否开启监控,默认:false 不开启,节省内存
*/
private
boolean
statEnable
=
false
;
public
String
getName
()
{
return
name
;
...
...
@@ -246,6 +250,10 @@ public final class MqttClientCreator {
return
messageIdGenerator
;
}
public
boolean
isStatEnable
()
{
return
statEnable
;
}
public
MqttClientCreator
name
(
String
name
)
{
this
.
name
=
name
;
return
this
;
...
...
@@ -377,6 +385,15 @@ public final class MqttClientCreator {
return
this
;
}
public
MqttClientCreator
statEnable
()
{
return
statEnable
(
true
);
}
public
MqttClientCreator
statEnable
(
boolean
enable
)
{
this
.
statEnable
=
enable
;
return
this
;
}
public
MqttClient
connect
()
{
// 1. 生成 默认的 clientId
String
clientId
=
getClientId
();
...
...
@@ -411,7 +428,9 @@ public final class MqttClientCreator {
tioConfig
.
setReadBufferSize
(
this
.
readBufferSize
);
// 9. ssl 证书设置
tioConfig
.
setSslConfig
(
this
.
sslConfig
);
// 10. tioClient
// 10. 是否开启监控
tioConfig
.
statOn
=
this
.
statEnable
;
// 11. tioClient
try
{
TioClient
tioClient
=
new
TioClient
(
tioConfig
);
tioClient
.
asynConnect
(
new
Node
(
this
.
ip
,
this
.
port
),
this
.
timeout
);
...
...
mica-mqtt-core/src/main/java/net/dreamlu/iot/mqtt/core/server/MqttServerCreator.java
浏览文件 @
d5b582da
...
...
@@ -169,6 +169,10 @@ public class MqttServerCreator {
* 是否用队列解码(系统初始化时确定该值,中途不要变更此值,否则在切换的时候可能导致消息丢失)
*/
private
boolean
useQueueDecode
=
false
;
/**
* 是否开启监控,默认:false 不开启,节省内存
*/
private
boolean
statEnable
=
false
;
public
String
getName
()
{
return
name
;
...
...
@@ -437,6 +441,19 @@ public class MqttServerCreator {
return
this
;
}
public
boolean
isStatEnable
()
{
return
statEnable
;
}
public
MqttServerCreator
statEnable
()
{
return
statEnable
(
true
);
}
public
MqttServerCreator
statEnable
(
boolean
enable
)
{
this
.
statEnable
=
enable
;
return
this
;
}
public
MqttServer
build
()
{
Objects
.
requireNonNull
(
this
.
messageListener
,
"Mqtt Server message listener cannot be null."
);
// 默认的节点名称,用于集群
...
...
@@ -473,7 +490,9 @@ public class MqttServerCreator {
tioConfig
.
setUseQueueSend
(
this
.
useQueueSend
);
// 4. mqtt 消息最大长度
tioConfig
.
setReadBufferSize
(
this
.
readBufferSize
);
// 5. 设置 t-io 心跳 timeout
// 5. 是否开启监控
tioConfig
.
statOn
=
this
.
statEnable
;
// 6. 设置 t-io 心跳 timeout
if
(
this
.
heartbeatTimeout
!=
null
)
{
tioConfig
.
setHeartbeatTimeout
(
this
.
heartbeatTimeout
);
}
...
...
@@ -487,9 +506,9 @@ public class MqttServerCreator {
tioConfig
.
debug
=
true
;
}
TioServer
tioServer
=
new
TioServer
(
tioConfig
);
//
6
. 不校验版本号,社区版设置无效
//
7
. 不校验版本号,社区版设置无效
tioServer
.
setCheckLastVersion
(
false
);
//
7.
配置 mqtt http/websocket server
//
9
配置 mqtt http/websocket server
MqttWebServer
webServer
;
logger
.
info
(
"Mica mqtt http api enable:{} websocket enable:{}"
,
this
.
httpEnable
,
this
.
websocketEnable
);
if
(
this
.
httpEnable
||
this
.
websocketEnable
)
{
...
...
@@ -499,7 +518,7 @@ public class MqttServerCreator {
}
// MqttServer
MqttServer
mqttServer
=
new
MqttServer
(
tioServer
,
webServer
,
this
,
executor
);
//
8
. 如果是默认的消息转发器,设置 mqttServer
//
9
. 如果是默认的消息转发器,设置 mqttServer
if
(
this
.
messageDispatcher
instanceof
AbstractMqttMessageDispatcher
)
{
((
AbstractMqttMessageDispatcher
)
this
.
messageDispatcher
).
config
(
mqttServer
);
}
...
...
mica-mqtt-spring-boot-starter/README.md
浏览文件 @
d5b582da
...
...
@@ -14,25 +14,26 @@
### 2.1 配置项
| 配置项 | 默认值 | 说明 |
| ----- | ------ | ------ |
| mqtt.server.enabled | true | 是否启用,默认:true |
| mqtt.server.name | Mica-Mqtt-Server | 名称 |
| mqtt.server.port | 1883 | 端口 |
| mqtt.server.ip | 0.0.0.0 | 服务端 ip 默认为空,0.0.0.0,建议不要设置 |
| mqtt.server.buffer-allocator | 堆内存 | 堆内存和堆外内存 |
| mqtt.server.heartbeat-timeout | 1000
* 120 | 心跳超时时间(单位: 毫秒 默认: 1000 *
120) |
| mqtt.server.read-buffer-size | 8092 | 一次读取接收数据的 buffer size,超过这个长度的消息会多次读取,默认:8092 |
| mqtt.server.max-bytes-in-message | 8092 | 消息解析最大 bytes 长度,默认:8092 |
| mqtt.server.max-client-id-length | 23 | mqtt 3.1 会校验此参数,其它协议版本不会 |
| mqtt.server.debug | false | debug,如果开启 prometheus 指标收集建议关闭 |
| mqtt.server.web-port | 8083 | http、websocket 端口,默认:8083 |
| mqtt.server.websocket-enable | true | 开启 websocket 服务,默认:true |
| mqtt.server.http-enable | false | 开启 http 服务,默认:true |
| mqtt.server.http-basic-auth.enable | false | 是否启用,默认:关闭 |
| mqtt.server.http-basic-auth.password | | http Basic 认证密码 |
| mqtt.server.http-basic-auth.username | | http Basic 认证账号 |
| mqtt.server.node-name | pid@ip:port | 集群节点名 |
| 配置项 | 默认值 | 说明 |
| ----- |-----------|----------------------------------------------|
| mqtt.server.enabled | true | 是否启用,默认:true |
| mqtt.server.name | Mica-Mqtt-Server | 名称 |
| mqtt.server.port | 1883 | 端口 |
| mqtt.server.ip | 0.0.0.0 | 服务端 ip 默认为空,0.0.0.0,建议不要设置 |
| mqtt.server.buffer-allocator | 堆内存 | 堆内存和堆外内存 |
| mqtt.server.heartbeat-timeout | 1000
* 120 | 心跳超时时间(单位: 毫秒 默认: 1000 *
120) |
| mqtt.server.read-buffer-size | 8092 | 一次读取接收数据的 buffer size,超过这个长度的消息会多次读取,默认:8092 |
| mqtt.server.max-bytes-in-message | 8092 | 消息解析最大 bytes 长度,默认:8092 |
| mqtt.server.max-client-id-length | 23 | mqtt 3.1 会校验此参数,其它协议版本不会 |
| mqtt.server.debug | false | debug,如果开启 prometheus 指标收集建议关闭 |
| mqtt.server.web-port | 8083 | http、websocket 端口,默认:8083 |
| mqtt.server.websocket-enable | true | 开启 websocket 服务,默认:true |
| mqtt.server.http-enable | false | 开启 http 服务,默认:true |
| mqtt.server.http-basic-auth.enable | false | 是否启用,默认:关闭 |
| mqtt.server.http-basic-auth.password | | http Basic 认证密码 |
| mqtt.server.http-basic-auth.username | | http Basic 认证账号 |
| mqtt.server.node-name | pid@ip:port | 集群节点名 |
| mqtt.server.stat-enable | false | 是否开启监控,默认:关闭,注意如果开启 Prometheus 监控,需要设置为 true |
### 2.2 配置项示例
...
...
@@ -183,10 +184,11 @@ public class ServerService {
| mqtt.client.max-client-id-length | 23 | mqtt 3.1 会校验此参数,其它协议版本不会 |
| mqtt.client.reconnect | true | 自动重连 |
| mqtt.client.re-interval | 5000 | 重连重试时间,单位毫秒 |
| mqtt.client.retry-count | 0 | 连续重连次数,当连续重连这么多次都失败时,不再重连。0和负数则一直重连
|
| mqtt.client.retry-count | 0 | 连续重连次数,当连续重连这么多次都失败时,不再重连。0和负数则一直重连 |
| mqtt.client.timeout | 5 | 连接超时时间,单位秒,t-io 配置,可为 null |
| mqtt.client.keep-alive-secs | 60 | Keep Alive (s) 心跳维持时间 |
| mqtt.client.version | MQTT_3_1_1 | mqtt 协议,默认:MQTT_3_1_1 |
| mqtt.client.stat-enable | false | 是否开启监控,默认:关闭 |
### 3.2 配置项示例
```
yaml
...
...
mica-mqtt-spring-boot-starter/src/main/java/net/dreamlu/iot/mqtt/spring/client/MqttClientConfiguration.java
浏览文件 @
d5b582da
...
...
@@ -66,7 +66,8 @@ public class MqttClientConfiguration {
.
reSubscribeBatchSize
(
properties
.
getReSubscribeBatchSize
())
.
version
(
properties
.
getVersion
())
.
cleanSession
(
properties
.
isCleanSession
())
.
bufferAllocator
(
properties
.
getBufferAllocator
());
.
bufferAllocator
(
properties
.
getBufferAllocator
())
.
statEnable
(
properties
.
isStatEnable
());
Integer
timeout
=
properties
.
getTimeout
();
if
(
timeout
!=
null
&&
timeout
>
0
)
{
clientCreator
.
timeout
(
timeout
);
...
...
mica-mqtt-spring-boot-starter/src/main/java/net/dreamlu/iot/mqtt/spring/client/MqttClientProperties.java
浏览文件 @
d5b582da
...
...
@@ -122,6 +122,10 @@ public class MqttClientProperties {
* 遗嘱消息
*/
private
WillMessage
willMessage
;
/**
* 是否开启监控,默认:false 不开启,节省内存
*/
private
boolean
statEnable
=
false
;
@Getter
@Setter
...
...
mica-mqtt-spring-boot-starter/src/main/java/net/dreamlu/iot/mqtt/spring/server/MqttServerConfiguration.java
浏览文件 @
d5b582da
...
...
@@ -77,7 +77,8 @@ public class MqttServerConfiguration {
.
webPort
(
properties
.
getWebPort
())
.
websocketEnable
(
properties
.
isWebsocketEnable
())
.
httpEnable
(
properties
.
isHttpEnable
())
.
nodeName
(
properties
.
getNodeName
());
.
nodeName
(
properties
.
getNodeName
())
.
statEnable
(
properties
.
isStatEnable
());
if
(
properties
.
isDebug
())
{
serverCreator
.
debug
();
}
...
...
mica-mqtt-spring-boot-starter/src/main/java/net/dreamlu/iot/mqtt/spring/server/MqttServerProperties.java
浏览文件 @
d5b582da
...
...
@@ -100,6 +100,10 @@ public class MqttServerProperties {
* 节点名称,用于处理集群
*/
private
String
nodeName
;
/**
* 是否开启监控,默认:false 不开启,节省内存
*/
private
boolean
statEnable
=
false
;
@Getter
@Setter
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录