内容简介:基于 nutzboot + netty + redis + kafka 实现的MQTT服务broker(另有t-io版本分支,暂未发布)本项目代码主要来源于 netty/iot-mqtt-server 等众多项目,开源免费,欢迎交流学习
MqttWk by netty
基于 nutzboot + netty + redis + kafka 实现的MQTT服务broker(另有t-io版本分支,暂未发布)
本项目代码主要来源于 netty/iot-mqtt-server 等众多项目,开源免费,欢迎交流学习
参考项目
使用说明
软件架构说明
-
使用netty实现通信及协议解析
-
使用nutzboot提供依赖注入及属性配置
-
使用 redis 实现消息缓存,集群
-
使用kafka实现消息代理
项目结构
MqttWk
├── mqtt-auth -- MQTT服务连接时用户名和密码认证
├── mqtt-broker -- MQTT服务器功能的核心实现
├── mqtt-common -- 公共类及其他模块使用的服务接口及对象
├── mqtt-store -- MQTT服务器会话信息(redis缓存及kafka加载)
├── mqtt-zoo -- 教程文档或文件
├── mqtt-test-kafka -- kafka消费者接收消息
├── mqtt-test-websocket -- websocket通信测试示例
功能说明
-
参考MQTT3.1.1规范实现
-
完整的QoS服务质量等级实现
-
遗嘱消息, 保留消息及消息分发重试
-
心跳机制
-
MQTT连接认证(可选择是否开启)
-
SSL方式连接(可选择是否开启)
-
主题过滤(支持单主题订阅如
test_topic/mqtt/test--不能以/结尾, 通配符订阅#/mqtt/#--以#结尾) -
Websocket支持(可选择是否开启)
-
集群功能(可选择是否开启)
-
Kafka消息转发功能(可选择是否开启)
快速开始
-
JDK1.8
-
项目根目录执行
mvn install -
mqtt-broker 下执行
mvn clean package nutzboot:shade进行打包 -
java -jar mqtt-broker-xxx.jar -Dnutz.profiles.active=prod[此时加载application-prod.properties配置文件] -
打开mqtt-spy客户端, 填写相应配置 下载
-
连接端口:8885, websocket 端口: 9995 websocket
-
连接使用的用户名: demo
-
连接使用的密码: 8F3B8DE2FDC8BD3D792BE77EAC412010971765E5BDD6C499ADCEE840CE441BDEF17E30684BD95CA708F55022222CC6161D0D23C2DFCB12F8AC998F59E7213393
-
连接使用的证书在
mqtt-zoo\keystore\server.cer
集群使用
-
多机环境集群:
-
mqttwk.broker.cluster-on=true -
mqttwk.broker.kafka.bootstrap.servers=192.168.1.101:9092,192.168.1.102:9093 -
redis.mode=cluster -
redis.nodes=192.168.1.103:16379,192.168.1.104:26379 -
单机环境集群:
-
mqttwk.broker.cluster-on=true -
mqttwk.broker.kafka.bootstrap.servers=127.0.0.1:9092,127.0.0.1:9093 -
redis.mode=normal -
redis.host=127.0.0.1
自定义 - 连接认证
-
默认只是简单使用对用户名进行RSA密钥对加密生成密码, 连接认证时对密码进行解密和相应用户名进行匹配认证
-
使用中如果需要实现连接数据库或其他方式进行连接认证, 只需要重写
mqtt-auth模块下的相应方法即可
自定义 - 服务端证书
-
服务端证书存储在
mqtt-broker的resources/keystore/server.pfx -
用户可以制作自己的证书, 但存储位置和文件名必须使用上述描述的位置及文件名
生产环境部署
-
多机环境集群
-
负载均衡: 富人用 L4 Switch,穷人用 Linux HAProxy
示例截图
测试截图
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- RabbitMQ 3.7.7 正式发布,多协议消息代理
- RabbitMQ 3.7.7 正式发布,多协议消息代理
- RabbitMQ 3.6.16-rc.1 发布,多协议消息代理
- RabbitMQ 3.7.7-rc.2 发布,多协议消息代理
- RabbitMQ 3.7.8-rc.4 发布,多协议消息代理
- RabbitMQ 3.7.8-rc.4 发布,多协议消息代理
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
复杂网络理论及其应用
汪小帆、李翔、陈关荣 / 清华大学出版社 / 2006 / 45.00元
国内首部复杂网络专著 【图书目录】 第1章 引论 1.1 引言 1.2 复杂网络研究简史 1.3 基本概念 1.4 本书内容简介 参考文献 第2章 网络拓扑基本模型及其性质 2.1 引言 2.2 规则网络 2.3 随机图 2.4 小世界网络模型 2.5 无标度网络模型 ......一起来看看 《复杂网络理论及其应用》 这本书的介绍吧!
XML 在线格式化
在线 XML 格式化压缩工具
HEX CMYK 转换工具
HEX CMYK 互转工具