内容简介:基于 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 发布,多协议消息代理
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
数据挖掘十大算法
(美)吴信东(Xindong Wu)、(美),库玛尔 ,(Vipin Kumar) / 李文波、吴素研 / 清华大学出版社 / 2013-5 / 39.00元
《世界著名计算机教材精选:数据挖掘十大算法》详细介绍了在实际中用途最广、影响最大的十种数据挖掘算法,这十种算法是数据挖掘领域的顶级专家进行投票筛选的,覆盖了分类、聚类、统计学习、关联分析和链接分析等重要的数据挖掘研究和发展主题。《世界著名计算机教材精选:数据挖掘十大算法》对每一种算法都进行了多个角度的深入剖析,包括算法历史、算法过程、算法特性、软件实现、前沿发展等,此外,在每章最后还给出了丰富的习......一起来看看 《数据挖掘十大算法》 这本书的介绍吧!