首页 > 其他分享 >论阿里云NLB之于MQTT负载均衡的重要性

论阿里云NLB之于MQTT负载均衡的重要性

时间:2024-11-01 17:18:58浏览次数:6  
标签:负载 12 mqtt 链接 nginx MQTT NLB 节点

论阿里云NLB之于MQTT负载均衡的重要性

先看图

在这里插入图片描述

首先看nginx下stream负载mqtt服务

假设你有3个mqtt节点权重一致,假设节点1同时部署了nginx

我们这里以c7cpu,4核8GB内存服务器为例。
这时候,假设6万链接连进来,节点1要负载多少链接数?

第1,是这6万进来的链接,6万;
第2,自己消化1/3,2/3分流给节点2和3,4万;
合计10万链接,而实际负载2万链接;

当然你也可以说单独部署一台nginx

这时候除了多一台服务器的费用,我们可以再看下这台服务器负载多少链接

第1,是这6万进来的链接,6万;
第2,自己不消化,所有流量分流给3个节点,6万;
合计12万链接;

好了,这里我要抛出另一个问题,一台c7cpu4核8GB,可以支撑多少并发TCP链接?

这里不想赘述,我压测了11个场景,得出的结论是,阿里云c7cpu4核8GB,可以稳定支撑12万链接200tps,我的测试链接心跳间隔是120秒,tps是用户链接发一条消息,设备链接回一条消息,合计每秒200。更高一点的值也是可以的,例如13万链接,300tps,但是保守,并且压测最长时间的数据就是12万链接200tps。

  • 所以

单独部署一台nginx来负载均衡,你要考虑服务器资源的浪费

  • PS

一定要c7cpu且4核8GB服务器,5代的或者7代2核的都测试过,支撑不了12万链接200tps,5代的大概5万多到6万,7代2核的大概6万

这里回过头说nginx负载均衡

一台服务器紧巴巴的才12万链接,结果6万链接进来,节点1就占了10万,才负载2万。
就算,你让节点2、3都上nginx,18万链接进来,这样每个节点链接数,分别是14万,而每个实际负载6万。而我们每台服务器只能12万负载,所以每台可负载的实际链接就不足6万,每台服务器资源浪费以上,3台或者更多台,就不知道浪费多少了。

  • 结论

我们完全可以抛弃nginx,让各个节点完全服务于mqtt服务,单个节点可以支撑12万mqtt链接,200tps稳定使用。

这里再说NLB

这里我们假设有36万的链接进入NLB,他可以均匀分给3个节点各12万,服务器资源充分服务于mqtt通讯。

  • PS

微信搜索【蜜蜂网盘搜so】小程序,万部短剧、各种资源任意搜索

标签:负载,12,mqtt,链接,nginx,MQTT,NLB,节点
From: https://blog.csdn.net/JingleYe/article/details/143322542

相关文章

  • ESP8266 连接 MQTT 服务器EMQX 连接MQTTX
    目录1.先用有一台自己的云服务器2. 使用FinalShell连接阿里云云服务器ECS3.安装宝塔4.在云服务器打开8888端口5.使用外网面板地址打开宝塔面板6.安装Docker7.下载emqx8.打开emqxWeb界面9.下载MQTTX10.EMQX加一个客户端11.开始通信12.加入单片机ESP82661.先......
  • 负载均衡
    1.负载均衡选型#选型产品硬件#F5,....软件#nginx,haproxy,lvs云产品#云负载均衡slb(tengine+lvs)2.负载均衡对比ngxvshavslvs区别(负载均衡vs反向代理)一般出现在面试中,如果不是一般认为这两个是一致的.区别在于处理用户请求的方式.......
  • web集群项目-迁移与接入负载
    1.web01数据库迁移到db01项目背景:网站集群访问量或数据量越来越大单台机器无法承受.项目实时步骤:准备新环境部署数据库服务(版本一致)临时停止服务,旧环境备份,新环境恢复,测试修改数据库地址(用户,密码,库),指向新的环境(wp-config.php代码中连接数据库的配置文件)......
  • 3. 使用Docker部署MQTT平台mosquitto到云服务器
    3.使用Docker部署MQTT平台mosquitto到云服务器1.拉取MosquittoDocker镜像(这里选择拉取1.6.14版本,因为最新版本报错Addressnotavailable)dockerpulleclipse-mosquitto#或者拉取1.6.14版本dockerpulleclipse-mosquitto:1.6.142.创建mosquitto配置文件在运......
  • 放电消纳负载箱应用经验有哪些?
    放电消纳负载箱,是一种专门用于模拟电网系统负荷的装置,主要用于对电力系统的运行状态进行测试和研究。在实际应用中,放电消纳负载箱具有以下经验:负载箱的选择:根据实际需要选择合适的负载箱。负载箱的功率、电压等级、电流范围等参数应与被测设备相匹配。同时,还需要考虑负载箱的稳......
  • 在K8S中,假设一家公司希望通过采用新技术来优化其工作负载的分配,公司该如何有效地实现
    在Kubernetes(K8s)中,一家公司若希望通过采用新技术来优化其工作负载的分配,可以遵循一系列策略和方法来实现高效的资源分配。以下是一些详细的建议:1.评估与规划资源需求评估:对公司现有的工作负载进行全面的资源需求评估,包括CPU、内存、存储和网络等资源。根据工作负载的特点,将......
  • 在K8S中,有一家公司希望在从裸机到公共云的不同云基础架构上运行各种工作负载。在存在
    在Kubernetes(K8s)中,一家公司若希望在从裸机到公共云的不同云基础架构上运行各种工作负载,并在存在不同接口的情况下实现这一目标,可以采取以下策略:1.采用Kubernetes作为统一的管理平台Kubernetes是一个开源的容器编排平台,它提供了强大的资源管理和调度能力,支持跨云、跨数据中心的......
  • 放电消纳负载如何实现的
    放电消纳负载是一种电力系统运行控制技术,主要用于解决电力系统中由于负荷波动、电源故障等原因产生的过剩电能问题。其实现过程主要包括以下几个步骤:检测和预测:首先,通过对电力系统的实时监测,获取系统的运行状态信息,包括负荷大小、电源输出功率等。然后,利用先进的预测技术,对未来......
  • 手把手搭建自己私有的MQTT服务器,完成设备上云
    手把手搭建自己私有的MQTT服务器,完成设备上云原创ds小龙哥DS小龙哥嵌入式技术资讯 2024年09月19日13:21重庆5人听过一、前言在众多物联网通信协议中,MQTT(MessageQueuingTelemetryTransport)因其轻量、高效的特点而被广泛应用于各种物联网场景。它不仅能够满足设备低功......
  • Linux进程调度器-CPU负载
    1.概述CPU负载(cpuload)指的是某个时间点进程对系统产生的压力。来张图来类比下(参考UnderstandingLinuxCPULoad)CPU的运行能力,就如大桥的通行能力,分别有满负荷,非满负荷,超负荷等状态,这几种状态对应不同的cpuload值;单CPU满负荷运行时cpu_load为1,当多个CPU或多核时,相当于大桥......