Перш за все, ви повинні зрозуміти, які елементи у вашому списку мають обмеження масштабування, на яке ви можете потрапити, а які - ні. Частина цього залежить від реалізації, тому це допомагає читати інформацію про внутрішні сторінки, наприклад, книгу RabbitMQ в дії.
Кількість черг обмежена Вашою ОЗУ. Кількість повідомлень, що відтворюються, з іншого боку, не обмежується оперативною пам’яттю, оскільки RabbitMQ автоматично розміщує їх на диску. Одного разу я випадково отримав майже 8 мільйонів повідомлень на грі на сервері розробки, коли я не звертав уваги.
Також немає обмежень щодо розмірів повідомлень, але ви дійсно повинні подумати двічі, якщо розмір одного повідомлення перевищує 512K. Я в кінцевому підсумку використовував кеш пам'яті для передачі великих об'єктів між додатками і лише надсилав менші контрольні повідомлення, що включали ключ пам’яті. Але якщо ви дійсно хочете, ви можете надсилати величезні JPEG та бінарні об'єкти, такі як файли JAR, як повідомлення.
Кількість абонентів є обмеженням для ОС, оскільки абоненту потрібен принаймні один розетку TCP. Звичайно, це налаштовується на більшості ОС, тому ваш пробіг буде відрізнятися, і саме тому вам доведеться протестувати свою модель. Я використовую JMETER для завантаження тестування наших веб-додатків, і я щойно відкрив цей плагін AMQP https://github.com/jlavallee/JMeter-Rabbit-AMQP, але ще не використовував його. У будь-якому випадку це тестування, яке швидко підкаже, з чим розумно працюватиме ваше обладнання (або конфігурація VM).
Єдине складне, що у вас є, це тестування великої кількості споживачів на черги розмитнення. Ви також можете порівняти, використовуючи обмін теми, замість того, щоб споживачі, які підписалися, використовували прив'язуючий ключ (*), що забезпечує той самий кінцевий результат. Спробуйте запустити цей тест з якомога більше різних машин, щоб переконатися, що ви якось не стикаєтесь із вузьким місцем, спричиненим єдиним сервером, що виконує споживчі процеси. PS, як виглядає плагін Jmeter, може також бути корисним для імітації споживачів.