RabbitMQ Federation实际应用测试加扩展构想

每个Federation集群由三台节点组成,其中两个Disk,一个Ram。接下来我们评估一下,一个Federation集群能够容纳的用户数。

已知数据:
6W queue消耗4G内存
一个设备会占用2个queue
内存报警阀值定为 60%。注:因为消息,连接等也需要消耗内存
性能测试中,两台(接近运维的物理机)虚拟机跑出的心跳,大约是800次/秒

1. Federation集群支持的设备:
我们以节点内存为16G来计算,(16G * 3 *60% * 6w) / (4G * 2) = 21.6w 个设备。

2. Federation集群的登录TPS:
我们以此前的测试数据 130tps来算,假定一小时内登录完成,130 * 3600 = 46.8w设备

3. Federation集群的峰值:
假定用户断网重连,用户在5分钟散列登录,则130 * 5 *60 = 2.4w设备。
注:显然现在的TPS不支持整个集群在5分钟内登录完毕。

4. Federation集群的UCC配置:
心跳次数 700次/秒
状态改变 100次/秒
消息 120次/秒
结合上面的数据,UCC大概需要 5台左右虚拟机。

总结下:
Federation集群,三台机器,内存16G
能够支持 21w设备
一小时能够登录 46.8w设备
五分钟内登录2.4w设备

建议:预先按照三到四个 federation集群,可以保证一个UCC集群支持 60W ~ 80W设备. 改“一个用户一个queue”为“一个ucas一个queue”

时间: 2024-10-05 04:33:12

RabbitMQ Federation实际应用测试加扩展构想的相关文章

用Django+MySQL+Celery+RabbitMQ实现一个分布式测试系统

最近做了一个分布式的测试系统,目前实现了主要的架构和MVP(minimum viable product)版本的基本功能.在架构设计.数据库设计.具体实现等方面,(算是目前我做的架构最复杂的测试系统)还是花了2-3周的时间,终于MVP 版本算是出来了(今后根据需求和精力再考虑丰富更多的功能). 使用Python开发,界面部分目前还没做:架构上使用到的东西,主要使用了:Django+DjangoRestFramework+MySQL+Celery+RabbitMQ. 如下图: architectu

CentOS环境PHP安装测试memcache扩展

1.安装libmemcached库 yum install libmemcached 2.下载并解压memcache文件 wget http://pecl.php.net/get/memcache-3.0.8.tgz tar xzvf memcache-3.0.8.tgz cd memcache-3.0.8 3.执行phpize扩展安装程序,假设phpzie的路径为/usr/local/php/bin/phpize,具体的路径得根据自己的环境修改. [[email protected] memc

OpenSSL升级和php加扩展模板openssl

升级openssl版本,以版本1.0.2l为例子 方法如下: 1.下载最新版本的openssl源码包 wget ftp://ftp.openssl.org/source/openssl-1.0.2l.tar.gz https://www.openssl.org/source/ 2. 安装openssl 1)tar –xzvf  openssl-1.0.2l.tar.gz 2)cd  openssl-1.0.2l 3)./config  shared  zlib  --prefix=/usr/lo

ubuntu 加扩展网卡遇到网卡无法识别

原创文章,如转载请注明出处 ============================ 今天在安装扩展网卡的时候出现了问题,ubuntu和Centos的网络配置是不一样的. ubuntu的配置: auto eth0 iface eth0 inet static address 192.168.1.66    (注意没有等号) netmask 255.255.255.0 gateway 192.168.1.1 如果添加了等号就会出现错误显示:"jobs failed to start" C

测试加载jquery

点击图片加载jquery.min.js,再点击开始游戏按钮,显示“您好,欢迎来到JQuery世界!”

C#中DataRow加扩展方式-转为对象

public static T ConvertToModel<T>(this DataRow dr) { T t = Activator.CreateInstance<T>(); //创建实例 PropertyInfo[] pi = t.GetType().GetProperties();//取类的属性 //属性赋值 foreach (PropertyInfo p in pi) { if (dr.Table.Columns.Contains(p.Name) && !

如何开发、本地测试、发布 Laravel 扩展包?

 Laravel/ 1年前/  4022 /  11 现在已经有了很多,关于如何开发 Laravel 扩展包的文章.但是大多文章写的太过片面,不够完整,而且我在实际进行开发扩展包的时候,还是遇到了很多的问题,我把自己的开发经验,以及遇到的问题记录下来,分享给大家. 扩展包开发 1. 创建新项目,初始化扩展包配置 首先创建一个新的 Laravel 项目: composer create-project laravel/laravel laradmin -vvv 接下来在此项目中,创建目录 pack

一个winform带你玩转rabbitMQ(一)

干货 先上图 源码在系列结束后放出 大概2到3篇 本文从第三部分开始根据winform逐点展开 一. 安装部署 下载 rabbitMQ :http://www.rabbitmq.com/download.html 安装rabbitmq需要erlang,下载erlang:http://www.erlang.org/download.html 按照官网按照步骤,例如windows http://www.rabbitmq.com/install-windows.html 安装完rabbitMQ可以再启

Kafka、RabbitMQ、RocketMQ等消息中间件的对比 —— 消息发送性能和区别

Kafka.RabbitMQ.RocketMQ等消息中间件的对比 -- 消息发送性能和区别 那么,消息中间件性能究竟哪家强? 带着这个疑问,我们中间件测试组对常见的三类消息产品(Kafka.RabbitMQ.RocketMQ)做了性能比较. Kafka是LinkedIn开源的分布式发布-订阅消息系统,目前归属于Apache顶级项目.Kafka主要特点是基于Pull的模式来处理消息消费,追求高吞吐量,一开始的目的就是用于日志收集和传输.0.8版本开始支持复制,不支持事务,对消息的重复.丢失.错误没