龙空技术网

java集成低延迟、高性能的 mqtt 物联网集群附源码

森哥热爱生活 176

前言:

此时小伙伴们对“netty对比mqtt”大致比较关注,我们都想要知道一些“netty对比mqtt”的相关资讯。那么小编也在网络上网罗了一些对于“netty对比mqtt””的相关知识,希望兄弟们能喜欢,兄弟们快快来了解一下吧!

基于 t-io 实现的低延迟、高性能的 mqtt 物联网组件。更多使用方式详见: mica-mqtt-example 模块。

使用场景物联网(云端 mqtt broker)物联网(边缘端消息通信)群组类 IM消息推送简单易用的 mqtt 客户端优势平凡却不单调,简单却不失精彩。手动档(更加易于二次开发或扩展)。牛犊初生,无限可能。功能支持 MQTT v3.1、v3.1.1 以及 v5.0 协议。支持 websocket mqtt 子协议(支持 mqtt.js)。支持 http rest api,http api 文档详见。支持 MQTT client 客户端。支持 MQTT server 服务端。支持 MQTT 遗嘱消息。支持 MQTT 保留消息。支持自定义消息(mq)处理转发实现集群。MQTT 客户端 阿里云 mqtt 连接 demo。支持 GraalVM 编译成本机可执行程序。支持 Spring boot 项目快速接入(mica-mqtt-spring-boot-starter)。mica-mqtt-spring-boot-starter 支持对接 Prometheus + Grafana。基于 redis pub/sub 实现集群,详见 mica-mqtt-broker 模块。待办优化处理 mqtt session,以及支持 v5.0基于 easy-rule + druid sql 解析,实现规则引擎。默认端口

端口号

协议

说明

1883

tcp

mqtt tcp 端口

8083

http、websocket

http api 和 websocket mqtt 子协议端口

依赖Spring boot 项目

<dependency>  <groupId>net.dreamlu</groupId>  <artifactId>mica-mqtt-spring-boot-starter</artifactId>  <version>1.2.8</version></dependency>

配置详见:mica-mqtt-spring-boot-starter 使用文档

非 Spring boot 项目

<dependency>  <groupId>net.dreamlu</groupId>  <artifactId>mica-mqtt-core</artifactId>  <version>1.2.8</version></dependency>

配置详见:mica-mqtt 使用文档

文档mica-mqtt-spring-boot-starter 使用文档mica-mqtt 使用文档mica-mqtt http api 文档详见mica-mqtt 发行版本t-io 官方文档mqtt 协议文档快速开始

查看 mica-mqtt-example 中有 mqtt 服务端和客户端演示代码, main 方法运行即可。

1. 启动 Server 端

运行 mica-mqtt-example/src/main/java/net/dreamlu/iot/mqtt/server/MqttServerTest.javamain 方法

控制台打印如下内容:

2021-07-05 20:42:36,869 INFO  server.TioServer - |----------------------------------------------------------------------------------------|| t-io site         |                                            || t-io on gitee     |                                       || t-io on github    |                                      || t-io version      | 3.7.3.v20210706-RELEASE                                            || ---------------------------------------------------------------------------------------|| TioConfig name    | Mica-Mqtt-Server                                                   || Started at        | 2021-07-05 20:42:36                                                || Listen on         | 127.0.0.1:1883                                                     || Main Class        | net.dreamlu.iot.mqtt.server.MqttServerTest                         || Jvm start time    | 2715ms                                                             || Tio start time    | 16ms                                                               || Pid               | 3588                                                               ||----------------------------------------------------------------------------------------|2021-07-05 20:42:37,884 WARN  server.MqttServer - Mqtt publish to all ChannelContext is empty.

Mqtt publish to all ChannelContext is empty. 通道上下文为空,即没有客户端。

Mica-Mqtt-Server ├ 当前时间:1625489086843 ├ 连接统计 │ 	 ├ 共接受过连接数  :0 │ 	 ├ 当前连接数            :0 │ 	 ├ 异IP连接数           :0 │ 	 └ 关闭过的连接数  :0 ├ 消息统计 │ 	 ├ 已处理消息  :0 │ 	 ├ 已接收消息(packet/byte):0/0 │ 	 ├ 已发送消息(packet/byte):0/0b │ 	 ├ 平均每次TCP包接收的字节数  :0.0 │ 	 └ 平均每次TCP包接收的业务包  :0.0 └ IP统计时段    	 └ 没有设置ip统计时间 ├ 节点统计 │ 	 ├ clientNodes :0 │ 	 ├ 所有连接               :0 │ 	 ├ 绑定user数         :0 │ 	 ├ 绑定token数       :0 │ 	 └ 等待同步消息响应 :0 ├ 群组 │ 	 └ groupmap:0 └ 拉黑IP    	 └ []2021-07-05 20:44:46,925 WARN  server.ServerTioConfig - Mica-Mqtt-Server, 检查心跳, 共0个连接, 取锁耗时0ms, 循环耗时71ms, 心跳超时时间:120000ms
2. 启动 Client 端

运行 mica-mqtt-example/src/main/java/net/dreamlu/iot/mqtt/client/MqttClientTest.javamain 方法

控制台打印如下内容,表示客户端连接成功:

2021-07-05 20:46:10,972 ERROR client.TioClient - closeds:0, connections:02021-07-05 20:46:10,972 INFO  client.TioClient - [1]: curr:0, closed:0, received:(0p)(0b), handled:0, sent:(0p)(0b)2021-07-05 20:46:12,566 INFO  client.ConnectionCompletionHandler - connected to 127.0.0.1:18832021-07-05 20:46:12,586 INFO  client.MqttClient - MqttClient reconnect send connect result:true2021-07-05 20:46:12,630 INFO  client.DefaultMqttClientProcessor - MqttClient connection succeeded!2021-07-05 20:46:13,932 INFO  client.MqttClientTest - /test/123	mica最牛皮

此时的 Server 端会打印出如下内容:

2021-07-05 20:46:45,654 INFO  server.MqttServerTest - subscribe:	/test/client	mica最牛皮2021-07-05 20:46:46,926 WARN  server.ServerTioConfig - Mica-Mqtt-Server ├ 当前时间:1625489206923 ├ 连接统计 │ 	 ├ 共接受过连接数  :1 │ 	 ├ 当前连接数            :1 │ 	 ├ 异IP连接数           :1 │ 	 └ 关闭过的连接数  :0 ├ 消息统计 │ 	 ├ 已处理消息  :20 │ 	 ├ 已接收消息(packet/byte):20/584 │ 	 ├ 已发送消息(packet/byte):37/935b │ 	 ├ 平均每次TCP包接收的字节数  :29.2 │ 	 └ 平均每次TCP包接收的业务包  :1.0 └ IP统计时段    	 └ 没有设置ip统计时间 ├ 节点统计 │ 	 ├ clientNodes :1 │ 	 ├ 所有连接               :1 │ 	 ├ 绑定user数         :0 │ 	 ├ 绑定token数       :0 │ 	 └ 等待同步消息响应 :0 ├ 群组 │ 	 └ groupmap:0 └ 拉黑IP    	 └ []2021-07-05 20:46:46,926 WARN  server.ServerTioConfig - Mica-Mqtt-Server, 检查心跳, 共1个连接, 取锁耗时0ms, 循环耗时0ms, 心跳超时时间:120000ms
3. Client 接入 Aliyun MQTT 服务(示例)

详见 mica-mqtt-example/src/main/java/net/dreamlu/iot/mqtt/aliyun/MqttClientTest.java

参考vs借鉴netty codec mqttjmqttiot-mqtt-servernetty-mqtt-clientmqtt 客户端工具mqttx 优雅的跨平台 MQTT 5.0 客户端工具mqtt websocket 调试mqttx.fx mqtt 客户端

感谢粉丝支持!适合新手学习MQtt集群开发

想要java集成低延迟、高性能 mqtt 物联网集群附源码源码,

请记得关注+转发+私信回复【物联网Mqtt集群】

如果对你有用,请记得转发,分享更多需要学习的朋友!

标签: #netty对比mqtt #netty和mqtt比较