草庐IT

介绍一款高性能分布式MQTT Broker(带web)

陆陆起飞啦 2023-03-28 原文

SMQTTX介绍

SMQTTX是基于SMQTT的一次重大技术升级,基于Java开发的分布式MQTT集群,是一款高性能,高吞吐量,并且可以完成二次开发的优秀的开源MQTT broker,主要采用技术栈:reactor3、reacotr-netty、netty、ignite等开源软件,基于SMQTTX可以轻松完成百万级别设备接入。

集群配置

机器节点 配置
192.168.0.92 8c/16g
192.168.0.187 8c/16g

压测场景

本次压测使用Emq-bench进行

连接压测

连接管理页面
[root@ecs-143990-0003 bin]#  ./emqtt_bench conn   -h 192.168.0.187   -p 1883 -u smqtt -P smqtt  -c 50000 -i 2
connected: 50000

[root@ecs-143990-0002 bin]# ./emqtt_bench conn   -h 192.168.0.187   -p 1883 -u smqtt -P smqtt  -c 50000 -i 2

connected: 50000

推送压测

订阅 100000 pub

连接管理页面
[root@ecs-143990-0003 bin]#  ./emqtt_bench sub -t test  -h 192.168.0.187   -p 1883 -u smqtt -P smqtt -c 50000
connected: 50000
9m12s sub total=50000 rate=31/sec

[root@ecs-143990-0002 bin]#  ./emqtt_bench sub -t test  -h 192.168.0.187   -p 1883 -u smqtt -P smqtt -c 50000
connected: 50000
9m12s sub total=50000 rate=31/sec

5000 pub

1h59m12s recv total=4907417 rate=59514/sec
1h59m13s recv total=4964547 rate=57130/sec
1h59m14s recv total=4971856 rate=7309/sec
1h59m32s recv total=5005099 rate=33243/sec
1h59m33s recv total=5060676 rate=55577/sec
1h59m34s recv total=5117880 rate=57204/sec
1h59m35s recv total=5173121 rate=55241/sec
1h59m36s recv total=5229499 rate=56378/sec
1h59m37s recv total=5285674 rate=56175/sec
1h59m38s recv total=5344244 rate=58570/sec
1h59m39s recv total=5397227 rate=52983/sec
1h59m40s recv total=5452597 rate=55370/sec
1h59m41s recv total=5510186 rate=57589/sec
1h59m42s recv total=5565421 rate=55235/sec
1h59m43s recv total=5622088 rate=56667/sec
1h59m44s recv total=5679827 rate=57739/sec
1h59m45s recv total=5737467 rate=57640/sec
1h59m46s recv total=5794272 rate=56805/sec
1h59m47s recv total=5848318 rate=54046/sec
1h59m48s recv total=5906008 rate=57690/sec

由上实际写入Qps 50kp/s

SMQTTX商业版问世

如果您的系统需要支持千万级设备接入,百万QPS数据上行,那我们的SMQTTX商业版是非常适合您的一款应用。 访问地址:Dashboard 用户名/密码:smqtt/smqtt

功能对比

功能列表

特色功能

  1. 分布式集群连接管理
  2. 分布式规则引擎管理
  3. 分布式动态认证管理
  4. 细粒度指标监控、提供grafana监控画板
  5. 标准的接入日志输出、日志查询
  6. 告警功能。提供钉钉、飞书等机器人告警

联系方式

微信: 17512575402 请备注咨询商业版MQTT

有关介绍一款高性能分布式MQTT Broker(带web)的更多相关文章

  1. ruby - 分布式事务和队列,ruby,erlang,scala - 2

    我有一个涉及多台机器、消息队列和事务的问题。因此,例如用户点击网页,点击将消息发送到另一台机器,该机器将付款添加到用户的帐户。每秒可能有数千次点击。事务的所有方面都应该是容错的。我以前从未遇到过这样的事情,但一些阅读表明这是一个众所周知的问题。所以我的问题。我假设安全的方法是使用两阶段提交,但协议(protocol)是阻塞的,所以我不会获得所需的性能,我是否正确?我通常写Ruby,但似乎Redis之类的数据库和Rescue、RabbitMQ等消息队列系统对我的帮助不大——即使我实现某种两阶段提交,如果Redis崩溃,数据也会丢失,因为它本质上只是内存。所有这些让我开始关注erlang和

  2. Unity 热更新技术 | (三) Lua语言基本介绍及下载安装 - 2

    ?博客主页:https://xiaoy.blog.csdn.net?本文由呆呆敲代码的小Y原创,首发于CSDN??学习专栏推荐:Unity系统学习专栏?游戏制作专栏推荐:游戏制作?Unity实战100例专栏推荐:Unity实战100例教程?欢迎点赞?收藏⭐留言?如有错误敬请指正!?未来很长,值得我们全力奔赴更美好的生活✨------------------❤️分割线❤️-------------------------

  3. ruby - 如何配置 Ruby Mechanize 代理以通过 Charles Web 代理工作? - 2

    我正在使用Ruby/Mechanize编写一个“自动填写表格”应用程序。它几乎可以工作。我可以使用精彩CharlesWeb代理以查看服务器和我的Firefox浏览器之间的交换。现在我想使用Charles查看服务器和我的应用程序之间的交换。Charles在端口8888上代理。假设服务器位于https://my.host.com。.一件不起作用的事情是:@agent||=Mechanize.newdo|agent|agent.set_proxy("my.host.com",8888)end这会导致Net::HTTP::Persistent::Error:...lib/net/http/pe

  4. Ruby 的数字方法性能 - 2

    我正在使用Ruby解决一些ProjectEuler问题,特别是这里我要讨论的问题25(Fibonacci数列中包含1000位数字的第一项的索引是多少?)。起初,我使用的是Ruby2.2.3,我将问题编码为:number=3a=1b=2whileb.to_s.length但后来我发现2.4.2版本有一个名为digits的方法,这正是我需要的。我转换为代码:whileb.digits.length当我比较这两种方法时,digits慢得多。时间./025/problem025.rb0.13s用户0.02s系统80%cpu0.190总计./025/problem025.rb2.19s用户0.0

  5. ruby - Ruby 性能中的计时器 - 2

    我正在寻找一个用ruby​​演示计时器的在线示例,并发现了下面的代码。它按预期工作,但这个简单的程序使用30Mo内存(如Windows任务管理器中所示)和太多CPU有意义吗?非常感谢deftime_blockstart_time=Time.nowThread.new{yield}Time.now-start_timeenddefrepeat_every(seconds)whiletruedotime_spent=time_block{yield}#Tohandle-vesleepinteravalsleep(seconds-time_spent)iftime_spent

  6. ruby-on-rails - 如果条件与 &&,是否有任何性能提升 - 2

    如果用户是所有者,我有一个条件来检查说删除和文章。delete_articleifuser.owner?另一种方式是user.owner?&&delete_article选择它有什么好处还是它只是一种写作风格 最佳答案 性能不太可能成为该声明的问题。第一个要好得多-它更容易阅读。您future的自己和其他将开始编写代码的人会为此感谢您。 关于ruby-on-rails-如果条件与&&,是否有任何性能提升,我们在StackOverflow上找到一个类似的问题:

  7. ruby - 如何找到我的 Ruby 应用程序中的性能瓶颈? - 2

    我编写了一个Ruby应用程序,它可以解析来自不同格式html、xml和csv文件的源中的大量数据。我如何找出代码的哪些区域花费的时间最长?有没有关于如何提高Ruby应用程序性能的好资源?或者您是否有任何始终遵循的性能编码标准?例如,你总是用加入你的字符串吗?output=String.newoutput或者你会使用output="#{part_one}#{part_two}\n" 最佳答案 好吧,有一些众所周知的做法,例如字符串连接比“#{value}”慢得多,但是为了找出您的脚本在哪里消耗了大部分时间或比所需时间更多,您需要进行分

  8. STM32的HAL和LL库区别和性能对比 - 2

    LL库和HAL库简介LL:Low-Layer,底层库HAL:HardwareAbstractionLayer,硬件抽象层库LL库和hal库对比,很精简,这实际上是一个精简的库。LL库的配置选择如下:在STM32CUBEMX中,点击菜单的“ProjectManager”–>“AdvancedSettings”,在下面的界面中选择“AdvancedSettings”,然后在每个模块后面选择使用的库总结:1、如果使用的MCU是小容量的,那么STM32CubeLL将是最佳选择;2、如果结合可移植性和优化,使用STM32CubeHAL并使用特定的优化实现替换一些调用,可保持最大的可移植性。另外HAL和L

  9. H2数据库配置及相关使用方式一站式介绍(极为详细并整理官方文档) - 2

    目录H2数据库入门以及实际开发时的使用1.H2数据库的初识1.1H2数据库介绍1.2为什么要使用嵌入式数据库?1.3嵌入式数据库对比1.3.1性能对比1.4技术选型思考2.H2数据库实战2.1H2数据库下载搭建以及部署2.1.1H2数据库的下载2.1.2数据库启动2.1.2.1windows系统可以在bin目录下执行h2.bat2.1.2.2同理可以通过cmd直接使用命令进行启动:2.1.2.3启动后控制台页面:2.1.3spring整合H2数据库2.1.3.1引入依赖文件2.1.4数据库通过file模式实际保存数据的位置2.2H2数据库操作2.2.1Mysql兼容模式2.2.2Mysql模式

  10. 适用于Web开发的Python还是Ruby? - 2

    Asitcurrentlystands,thisquestionisnotagoodfitforourQ&Aformat.Weexpectanswerstobesupportedbyfacts,references,orexpertise,butthisquestionwilllikelysolicitdebate,arguments,polling,orextendeddiscussion.Ifyoufeelthatthisquestioncanbeimprovedandpossiblyreopened,visitthehelpcenter提供指导。11年前关闭。我是一位精通HTML

随机推荐