У вас когда-нибудь возникали проблемы с RabbitMQ, такие как потеря сообщений? Вы когда-нибудь пытались перенести RabbiMQ с собственного хоста на облачное управление? Недавно у меня была возможность поработать над переносом кластера RabbitMQ с кластера, размещенного в K8s, на AWS MQ. Мы решили перенести кластер на AWS MQ, чтобы добиться стабильности, поскольку считаем, что AWS позаботится о работоспособности кластера лучше, чем мы. Но вопрос в том, как сделать так, чтобы мы его правильно настроили. Правильно, никто не узнает, если мы не попытаемся провести нагрузочное тестирование. При поиске инструмента для имитации трафика с высокой нагрузкой я обнаружил, что RabbitMQ поддерживает официальный инструмент для этого.

То есть https://github.com/rabbitmq/rabbitmq-perf-test

Инструмент довольно прост в использовании с несколькими простыми командами и средой выполнения Java, установленной на вашем локальном компьютере.

Во-первых, давайте загрузим инструмент, запустив его на своем терминале.

wget https://github.com/rabbitmq/rabbitmq-java-tools-binaries-dev/releases/download/v-rabbitmq-perf-test-latest/perf-test-latest.jar

Затем откройте другую вкладку или окно терминала и перейдите туда, где вы недавно разместили инструмент на предыдущем шаге. Ниже приведен простой тест, который можно выполнить, изменив параметр инструмента.

  1. Тест пропускной способности
java -jar perf-test-latest.jar --uri <uri> -x 1 -y 2 -u "throughput-test-1" -a --id "test 1"

Это будет имитировать тысячи сообщений, отправленных на ваш RabbitMQ.

2. Тест высокой нагрузки на трафик

java -jar perf-test-latest.jar --uri <uri> --queue-pattern 'perf-test-%d' --queue-pattern-from 1 --queue-pattern-to 200 --producers 200 --consumers 200

Этот инструмент имеет множество необязательных параметров, поэтому вы можете настроить их для проверки своей ситуации. Чтобы увидеть это, вы можете просто запустить

java -jar perf-test-latest.jar --help

Если вы хотите отобразить результат, полученный в результате тестов, в красивый график.

Этот инструмент также помогает с небольшой дополнительной работой, которую вы можете найти здесь: https://github.com/rabbitmq/rabbitmq-perf-test/blob/main/html/README.md

Чтобы узнать подробнее, посетите этот сайт: https://perftest.rabbitmq.com

Спасибо за ваше время, читая это. Если у вас есть способ протестировать кластер Rabbit MQ, поделитесь им со мной в комментариях.

Удачного кодирования и обучения. Ваше здоровье