🎉smart-mqtt v0.28 发布,无边连接无限
1、smart-mqtt 简介
smart-mqtt,是 smartboot 组织下面向物联网的首款解决方案,它使用 Java 语言开发,提供高效、可靠的 MQTT Broker 服务。
smart-mqtt 的独特优势在于大量设备接入的情况下,仍能保持低延迟和高吞吐量,满足物联网领域严苛的实时性需求。同时,smart-mqtt 为了最大限度地节省硬件成本,采用了高度优化的资源管理策略,降低了系统运行时的 CPU 和内存占用,使企业在保持高性能的同时,大幅降低运维成本。
另外,mqtt 协议天然适合 IM 场景,需要打造企业级 IM 应用,smart-mqtt 同样是一个非常好的选择。
smartboot 开源组织,一个容易被误认为是在 “重复造轮子” 的低调组织。曾获得 2020 年度 OSC 中国开源项目「优秀 Gitee 组织 」荣誉。
该组织内的明星项目包括:
smart-socket
历时 5 年精炼出 2 千多行代码,轻松实现百万级长连接的 AIO 通信框架。smart-http
基于 smart-socket 实现的 HTTP/1.1 web 服务。smart-servlet
基于 smart-http 实现的 Servlet 3.1 容器服务。smart-mqtt
基于 smart-socket 实现的 MQTT 3.1.1/5.0 Broker&Client 服务。smart-flow
一款具备可观测性的轻量级业务编排框架。组织地址:?https://smartboot.tech/
代码仓库:?https://gitee.com/smartboot
2、 版本更新
【社区版】
-
bugfix:修复retain消息实现不符合规范的问题。(感谢 springrain-zorm 反馈)
-
调整消息总线接口入参设计。
-
删除 broker 模块中的 EventObject。
-
服务配置项 name 调整为 nodeId。
-
移除 BrokerContext#getRuntime 接口。
-
调整控制台 Banner 输出时机。
【企业版】
在这轮版本中,smart-mqtt 企业版对集群特性作了一次重构升级。虽说在初始版本中我们便已提供了集群能力,但长久以来一直有个问题困扰着我:如何设计一个简单、稳定的架构,同时又具备无限扩缩容的弹性能力。
在万物互联时代,我们将面临的挑战可能是百万、千万,甚至上亿的物联规模。不同的连接规模必然对应着不同规格和数量的服务器资源,当企业业务量发展突破当前平台瓶颈时,如何实现快速、平滑、无感的集群扩容是对架构设计的考验。
在 emqx 5.0 中采用了一种称之为 Mria 的架构,smart-mqtt 也借鉴该设计。
-
任意 woker 节点收到消息后会转发给与之相连的 core 节点;
-
该 core 节点再分发至集群中的其他 core 节点;
-
core 节点需把其他 core 节点投递过来的消息转发至与自身相连的 worker 节点,再通过 worker 节点推送至符合订阅条件的客户端。
测试效果:
通过 docker-compose 快速搭建一套由 4 个 core 节点,6 个 worker 节点组成的集群。
集群拓扑如下:
3、性能测试报告
-
场景一:
10 个 publisher 每隔 1 毫秒发送 payload 为 128 字节的消息,这些消息分布在 128 种 topic 下,有 2000 个 subscriber 订阅这些 topic 的消息。
smart-mqtt | |
---|---|
QoS0 | 300W/s |
QoS1 | 160W/s |
QoS2 | 80W/s |
-
场景二:
2000 个 publisher 每隔 1 毫秒发送 10 个 payload 为 128 字节的消息,这些消息分布在 128 种 topic 下。
smart-mqtt | |
---|---|
QoS0 | 93W/s |
QoS1 | 55W/s |
QoS2 | 40W/s |
4、如何获取 smart-mqtt
4.1 源码
4.2 Maven 依赖
-
mqtt broker
<dependency> <groupId>org.smartboot.mqtt</groupId> <artifactId>smart-mqtt-broker</artifactId> <version>0.28</version> </dependency>
-
mqtt client
<dependency> <groupId>org.smartboot.mqtt</groupId> <artifactId>smart-mqtt-client</artifactId> <version>0.28</version> </dependency>
4.3 发行包
-
社区版
打开浏览器访问:https://gitee.com/smartboot/smart-mqtt/releases
下载最新版。 -
企业版
成为项目赞助商,单独提供发行包(具体见下文)。
5. 关于 smart-mqtt 企业版
smart-mqtt 目前是由个人开发者在业余时间维护,暂无提供商业化服务的计划。
出于项目的可持续发展需要,我们在 smart-mqtt 社区版的基础上,丰富了一些企业级功能。如果贵公司认可 smart-mqtt 的价值,可以通过成为赞助商获得企业版授权。
功能特性
-
企业版 License 认证。授权过期将无法启动服务,但并不会因授权过期影响正在运行的 Broker。
-
MQTT over WebSocket。
-
Broker 集群部署。
-
管理后台
-
指标数据持久化(H2、MySQL)
-
数据桥接:redis、kafka
-
未完待续...
赞助商等级
青铜赞助商 | 白银赞助商 | 黄金赞助商 | 铂金赞助商 | |
---|---|---|---|---|
赞助条件 | 加入企业支持计划 | 500 元 / 年 | 1500 元 / 年 | 5000 元 / 年 |
License 有效期 | 1 年 | 1 年 | 1 年 | 1 年 |
部署指导 | - | 1 次 | 1 次 | 不限次数 |
Logo 展示位 | - | 小号 | 中号 | 大号 |
首页 Logo 展示 | - | - | - | ✅ |
技术支持 | 文档 | 邮件 /ISSUE | 微信 / QQ / 邮件 | 微信 / QQ / 邮件 |
白银赞助商的价值:
成本:500 元 / 年,相当于一名初中级程序员一天的薪资。
产出效益:
增加品牌曝光率。
节省投入在 Sass 云服务中的巨额资费。
结交更多物联网领域的从业者。
成为赞助商遵循双方自愿原则,我们会在能力范围内尽可能提供 smart-mqtt 相关的技术支持。与此同时因时间和精力有限,我们也并不希望由此带来额外的负担,影响到项目的正常迭代。
所以,如有疑问尽量通过 ISSUE 交流,或者通过 ISSUE 和官方文档自助寻找答案,还望理解~~

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
sms4j 3.0 正式发布,全新特性,全面升级
🎉sms4j 3.0.0版本震撼发布 短信重试,多方共用,负载均衡正式来袭🎉 在历经了数月的等待之后(主要作者在摸鱼,写得慢。。。。)sms4j的3.0版本终于正式发布,本次版本为大版本更新,与2.x不兼容,但是本次更新是一个长期支持版本,并且带来了诸多的新特性,接下来我们一起来看看吧 🚀新特性 支持短信失败重试,可以自定义重试次数 支持单厂商多配置使用 支持接口类配置 支持自定义缓存来源 支持默认负载均衡形式,权重可自定义配置 支持邮件发送 支持邮箱监听 支持邮件发送失败自动重试 支持短信拦截 🏇使用方式变更 在sms4j3.0版本中,使用方式与先前的2.X有所不同,使用上不再依托2.X中的枚举,而是改为更加自由的自定义key标识 SmsBlendsmsBlend=SmsFactory.getSmsBlend("在配置中定义的configId"); SmsResponsesmsResponse=smsBlend.sendMessage("18888888888","123"); 🔧配置方式变更 在3.0版本中,去除了先前中的JDBC配置等形式,改为更加自由的接口类...
- 下一篇
GoEdge CDN v1.2.9 发布,优化缓存清理、访客IP等细节
GoEdge是一款可以帮你快速构建 CDN & WAF 平台的工具,支持 HTTP、HTTPS、Websocket、TCP、TLS、UDP、PROXY Protocol、IPv6、WAF 等特性,支持多个第三方 DNS 服务。 GoEdge v1.2.9版本主要优化缓存清理、访客IP等细节。 管理系统 EdgeAdmin 添加域名时移除多余的端口号,防止错误填入类似于example.com:8080的端口 反向代理(源站–更多设置–更多选项)增加“自动重试50X选项”,默认为启用,启用后,在源站返回50X错误时,会自动重新尝试 修复 安全设置 – 允许访问的国家和地区 中不能使用中国特殊区域(中国内地、中国香港等)的问题 优化几个内置的自定义页面模板,增加连接IP信息,方便诊断 网站设置增加是否支持${serverAddr}选项,选中后可以在模板中使用${serverAddr}变量 有消息提示时页面标题增加三个点符号提示,方便用户快速知晓是否有通知消息 修复单个节点同属多个集群时DNS线路设置时会自动复制的问题 由于当前对gif格式支持的不完整,WebP支持的默认格式中去除i...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- Mario游戏-低调大师作品
- CentOS7安装Docker,走上虚拟化容器引擎之路