EMQ ---v2.3.11源码成熟度

从原作者那边了解到,总体还可以,但是做不到99.99%稳定。主要是连接内存占用没有保护。

pubsub均衡时很稳定,但是集群或大量消息向少量订阅发布时会崩溃,小概率情况。

EMQ中CPU是公平分配给MQTT会话,大量pub消息到一个订阅,订阅不会拿到更多cpu,最终导致消息累积,内存溢出宕机。

崩溃可能发生在网络波动,大量消息向少量订阅发布,容量不够,集群脑裂,出现异常订阅发布等情况。

所以,客户端要做好连接back off,即连接退避,防止连接风暴。就是说服务器崩溃了,重启时,要防止海量客户端同时接入。

原文地址:https://www.cnblogs.com/saryli/p/9785727.html

时间: 2024-11-08 22:50:21

EMQ ---v2.3.11源码成熟度的相关文章

mysql5.7.11 源码编译安装 (Red hat linux 6.5 )

mysql5.7.11 源码编译安装 (Red hat linux 6.5 ) 一.准备工作 1.1 卸载系统自带mysql 查看系统是否自带mysql, 如果有就卸载了, 卸载方式有两种yum, rpm, 这里通过yum卸载 rpm -qa | grep mysql    //查看系统自带mysql yum -y remove mysql-*   //卸载mysql rpm -e –nodeps mysql-5.1.73-3.el6_5.x86_64 //卸载mysql 1.2 卸载系统自带b

dubbo2.4.11源码编译

本文以dubbo2.4.11源码编译和打包例 dubbo官网:http://dubbo.io/ 源码:https://github.com/alibaba/dubbo 用户指南:http://dubbo.io/User+Guide-zh.htm 开发指南:http://dubbo.io/Developer+Guide-zh.htm 按官方说明2.4.X是GA稳定版本,去https://github.com/alibaba/dubbo/releases下载最新的2.4.11 解压到D:\proje

Mysql 5.7.11源码安装方法

环境:Centos 6.6 64位mysql 5.7.11 1.安装依赖包 yum -y install gcc-c++ ncurses-devel cmake make perl gcc autoconf automake zlib libxml libgcrypt libtool bison 2.安装boost库(对应版本高于或低于这个版本都有问题) wget http://nchc.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_

mysql 5.7.11 源码安装

mysql5.711安装 1.安装boost包下载地址http://sourceforge.net/projects/boost/files/boost/ 2.解压boost_1_59_0.tar.gz cp -a boost_1_59_0 /usr/local/boost 3.cmake编译(要在源码目录下面执行cmake命令)cmake -DCMAKE_INSTALL_PREFIX=/exapp/mysql -DMYSQL_UNIX_ADDR=/exapp/mysql/mysql.sock

linux0.11源码内核——系统调用,int80的实现细节

系统调用:系统库中为系统调用编写了许多接口函数(API),不同的API对应了不同的真正的(OS内核中)系统调用 系统调用的三个基本步骤: 1.把系统调用编号存到 寄存器eax中 2.把函数参数传到其他通用寄存器中:第一个参数:ebx,第二个:ecx ... 3.触发0x80号中断 在内核加载完毕,切换到用户模式下时,会做一些初始化工作(如main.c里一大堆_init()函数),最后一步启动shell, 用户在shell中可以进行进程调度 int 0x80的触发过程和实现细节 1.一些宏定义和头

Linux-0.11内核源码分析系列:关于线性地址,逻辑地址,物理地址的关系与区别

/* *Author : DavidLin *Date : 2014-11-22pm *Email : [email protected] or [email protected] *world : the city of SZ, in China *Ver : 000.000.001 *history : editor time do * 1)LinPeng 2014-11-22 created this file! * 2) */     以下所有描述基于Linux0.11内核及其所编写的年

编译哈工大语言技术平台云LTP(C++)源码及LTP4J(Java)源码

转自:编译哈工大语言技术平台云LTP(C++)源码及LTP4J(Java)源码 JDK:java version “1.8.0_31”Java(TM) SE Runtime Environment (build 1.8.0_31-b13)Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)OS:win7 64bitcmake:V2.8.12/V3.2.2LTP:V3.2.0LTP4J:V1.0Microsoft VS C+

JAVA上百实例源码以及开源项目

简介 笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级.中级.高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情.执着,对IT的憧憬.向往!此时此景,笔者只专注Android.Iphone等移动平台开发,看着这些源码心中有万分感慨,写此文章纪念那时那景! Java 源码包 Applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能.编辑音乐软件的朋友,这款实例会对你有所帮助.Calendar万年历 1个目标文件EJ

MyBatis 源码分析——生成Statement接口实例

JDBC的知识对于JAVA开发人员来讲在简单不过的知识了.PreparedStatement的作用更是胸有成竹.我们最常见用到有俩个方法:executeQuery方法和executeUpdate方法.这俩个方法之外还有一个execute方法.只是这个方法我们很少用.但是mybatis框架就是却用这个方法来实现的.不管mybatis用是哪一个方法来实现.有一点可以肯定--那就是必须得到Statement接口实例.你可以这样子理解mybatis把如何获得Statement接口实例做了一个完美的封装.