首页 > 其他分享 >RabbitMQ工厂虚拟机集群可靠性测试报告

RabbitMQ工厂虚拟机集群可靠性测试报告

时间:2024-03-26 12:15:15浏览次数:28  
标签:测试报告 -- 0.0 虚拟机 tcp 集群 RabbitMQ 节点 ACCEPT

高可用集群架构

节点域名 操作系统 RabbitMQ版本 Erlang版本
rabbitmq1.mfg.tp-link.com Centos7.9 3.8.28 23.3-2
rabbitmq2.mfg.tp-link.com Centos7.9 3.8.28 23.3-2
rabbitmq3.mfg.tp-link.com Centos7.9 3.8.28 23.3-2
目前Centos7.9通过直接RPM包部署安装的版本最高支持到3.8.28,Erlang相应版本支持范围为23.2到24.2,也通过RPM包安装部署

压力测试

测试方案

模式:用户办公电脑JAVA程序模拟生产者和和消费者
测试分类:高信息大小(10KB)/正常业务模式信息大小(200B)
测试连接地址:rabbitmqlb1.mfg.tp-link.com
测试端口:5672/tcp
结果统计来源:RabbitMQ UI组件数据统计,折线图统计

压力测试统计结果

消息总数 消息大小 峰值带宽 生产者速率(平均) 消费者速率(均值) 消费者速率(峰值) 节点内存平均占用
594,112条 10KB 71.2Mbps 750条/s 500条/s 750条/s 1.15G
5,998,430条 200B 13Mbps 4144条/s 11414条/s 17052条/s 1.2G

脑裂测试

方案:RabbitMQ集群三个几点都安装iptables防火墙(使用firewalld防火墙模拟脑裂失败),25672为RabbitMQ集群节点交互端口,二三节点关闭集群交互端口25672,一节点开放所有需要的端口,通过RabbitMQ UI管理界面以及Zabbix RabbitMQ插件告警来判断脑裂是否模拟成功,集群在搭建时已设置恢复策略为Autoheal,模拟正常业务场景下的消息发送,后回滚防火墙操作,观察集群恢复情况,查看各节点日志关于分区恢复的详情

防火墙处理结果

节点1
[root@rabbitmq1-mfg sysconfig]# iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:5672
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:4369
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:25672
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
节点2
[root@rabbitmq2-mfg ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:25672
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:15672
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
节点3
[root@rabbitmq3-mfg ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:25672
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:15672

RabbitMQ UI管理界面脑裂显示

image

image

集群节点Autoheal自动恢复相关日志

节点1
接收到了来自二节点的Autoheal请求,得知了一二节点是losers,三节点是Winner,同时也会收到Winner三节点的Autoheal请求,但此时这是第二个Autheal请求就会忽略(已处于自动恢复状态中),一节点关闭自身Rabbitmq进程

image

节点2
二节点接收到了来自三节点的Autoheal重启通知,会将通知传递给下一个需要重启的节点一,然后自身关闭Rabbitmq进程

image

节点3
节点三在选举中胜出成为Winner,会将Autoheal请求发送到Rabbitmq一二节点,等待一二节点都关闭完后再让一二节点依次重启加入集群

image

image

总结

初始集群中,所有的镜像队列的master队列都是由Rabbitmq1-mfg一节点对外提供服务,二三节点上的队列为slave队列同步一节点数据,在发生脑裂后恢复后,三节点的master升格为了master队列,一二节点的队列变为slave队列进行数据同步,其中master队列的选举依靠多维度数据进行评判:客户端连接数,剩余磁盘量,节点负载等,在集群发生脑裂的过程中,消息发送失败率为0%,保证了业务的连续性,在非极端情况下,数据也能保证恢复后的一致性

标签:测试报告,--,0.0,虚拟机,tcp,集群,RabbitMQ,节点,ACCEPT
From: https://www.cnblogs.com/iamxiaofu/p/18096354

相关文章

  • 服务器安装KVM环境并安装虚拟机(centOS7)
    一.安装KVM环境1.检测是否支持KVM        cat/proc/cpuinfo|egrep'vmx|svm'        返回结果中有vmx或svm,说明cpu是支持的2. 关闭SELinux,将/etc/sysconfig/selinux中的 SELinux=enforcing 修改为 SELinux=disabled        vi/etc/s......
  • 使用libvirt的端口转发,实现虚拟机跟外界互通
    参考Dynamicport-forwardingforNAT-edkvm/libvirtnetworksForwardingIncomingConnections在/etc/libvirt/hooks添加qemu脚本,模板如下,需要根据自己的配置进行修改:#!/bin/bash#usedsomefromadvancedscripttohavemultipleports:useanequalnumberofguest......
  • pve 下的群晖虚拟机硬盘空间扩容的记录
    pve下,105号群晖虚拟机,btrfs系统,sata硬盘。虚拟机容量硬盘130G,扩展至140G,还需要命令行和网页存储管理器界面操作,以实现扩容的目的。df-hFilesystemSizeUsedAvailUse%Mountedon/dev/md07.9G1.8G6.0G23%/devtmpfs......
  • ESXI虚拟机操作系统上安装部署VCSA
    目录一、配置安装VCSA系统二、配置安装VCSA服务三、登录VCSA初始化操作工具:VMware工作站版、VCSA镜像前提工作:VMware工作站版中创建ESXI虚拟机、配置网络口和DNSweb登录虚拟机,检查许可、NTP服务状态、添加数据存储这里我已经添加完成一、配置安装VCSA系统......
  • vmware虚拟机安装2024(超详细)
    vmware虚拟机安装(超详细)前言前言之前安装vmware时发现没有适合小白下载的详细步骤,发现大部分博客一部分详细一部分不详细,并且没有2024版的,我就出了一个非常详细的步骤,直接傻瓜式安装,照着点就可以了。一、安装vmware下载vmware链接链接:https://www.vmware.com/......
  • jvm虚拟机优化
    CMS优点:1、程序运行的同时可以进行垃圾回收缺点:1、清除大对象产生内存碎片2、会消耗额外的CPU资源虚拟机优化参数详解1、-XX:+UseConcMarkSweepGC使用并发垃圾回收器2、优化GETSET方法-XX:UseFastAccessorMethods3、PermenSize设置128M-XX:LargePageSizeInBytes=128M......
  • RabbitMQ3.x之一_WindowServer2019中安装RabbitMQ详细教程
    RabbitMQ3.x之一_WindowServer2019中安装RabbitMQ详细教程文章目录RabbitMQ3.x之一_WindowServer2019中安装RabbitMQ详细教程1.安装环境说明1.WindowServer20192.ErLang与RabbitMQ对应版本2安装Erlang1.安装Erlang2.ErLnag环境变量配置3.查看是否安装成功3.安......
  • Centos7虚拟机中oracle19c数据库安装
    目录[-]  1. Centos7虚拟机中oracle19c数据库安装1.1. 1.先诀条件1.2. 2.oracle19c安装准备(root用户下执行)1.3. 3.CentOS7上安装oracle19c1.先诀条件 本文在安装oracle19c时,各项oracle配置操作都通过图形界面进行。因此CentOS7系统需要安装gn......
  • org.springframework.amqp.AmqpAuthenticationException: com.rabbitmq.client.Authen
    出现问题org.springframework.amqp.AmqpAuthenticationException:com.rabbitmq.client.AuthenticationFailureException:ACCESS_REFUSED-LoginwasrefusedusingauthenticationmechanismPLAIN.Fordetailsseethebrokerlogfile.解决问题创建一个超级用户//添......
  • 虚拟机 Centos 7 磁盘空间不足扩容 (默认分区-vgdisplay无回显)
    前提centos7系统新建系统时选择的默认分区vgs等查看卷组命令无回显根目录磁盘空间不足大致流程及注意事项处理方法:删除再重建不会导致其中的数据丢失防止出现意外,请备份或者快照1.率先在VMware中对虚拟机进行磁盘容量扩容此处进行20g-->40g的扩容2.再在虚拟机......