Rabbitmq - Розумні очікування щодо продуктивності / масштабу


13

Буду вдячний, якщо хтось міг би вказати на мене в напрямку якихось розумних масштабів / обмежень щодо rabbitmq (на "середньому" апаратному забезпеченні, fwiw) або опублікувати ваш досвід з його виконанням. Я намагаюсь зрозуміти кількість можливостей для кількості черг, кількість передплатників у чергах, наслідки для продуктивності того, що сотні чи тисячі слухачів у чергових шахмах, будь-які важкі номери, у кого може бути кролик у середовищі з високою потужністю.


Це надзвичайно просто для перевірки, особливо враховуючи, що з числами, які ви очікуєте, у вас є бюджет на підготовку деяких віртуальних машин. Я настійно пропоную вам протестувати його на основі конкретного випадку використання, на апаратному забезпеченні, яке ви очікуєте використовувати.
Андрій М.

Погляньте на плани CloudAMQP - це випробувані номери продуктивності для певних апаратних конфігурацій.
Відновіть Моніку - М. Шредер

Відповіді:


11

Перш за все, ви повинні зрозуміти, які елементи у вашому списку мають обмеження масштабування, на яке ви можете потрапити, а які - ні. Частина цього залежить від реалізації, тому це допомагає читати інформацію про внутрішні сторінки, наприклад, книгу RabbitMQ в дії.

Кількість черг обмежена Вашою ОЗУ. Кількість повідомлень, що відтворюються, з іншого боку, не обмежується оперативною пам’яттю, оскільки RabbitMQ автоматично розміщує їх на диску. Одного разу я випадково отримав майже 8 мільйонів повідомлень на грі на сервері розробки, коли я не звертав уваги.

Також немає обмежень щодо розмірів повідомлень, але ви дійсно повинні подумати двічі, якщо розмір одного повідомлення перевищує 512K. Я в кінцевому підсумку використовував кеш пам'яті для передачі великих об'єктів між додатками і лише надсилав менші контрольні повідомлення, що включали ключ пам’яті. Але якщо ви дійсно хочете, ви можете надсилати величезні JPEG та бінарні об'єкти, такі як файли JAR, як повідомлення.

Кількість абонентів є обмеженням для ОС, оскільки абоненту потрібен принаймні один розетку TCP. Звичайно, це налаштовується на більшості ОС, тому ваш пробіг буде відрізнятися, і саме тому вам доведеться протестувати свою модель. Я використовую JMETER для завантаження тестування наших веб-додатків, і я щойно відкрив цей плагін AMQP https://github.com/jlavallee/JMeter-Rabbit-AMQP, але ще не використовував його. У будь-якому випадку це тестування, яке швидко підкаже, з чим розумно працюватиме ваше обладнання (або конфігурація VM).

Єдине складне, що у вас є, це тестування великої кількості споживачів на черги розмитнення. Ви також можете порівняти, використовуючи обмін теми, замість того, щоб споживачі, які підписалися, використовували прив'язуючий ключ (*), що забезпечує той самий кінцевий результат. Спробуйте запустити цей тест з якомога більше різних машин, щоб переконатися, що ви якось не стикаєтесь із вузьким місцем, спричиненим єдиним сервером, що виконує споживчі процеси. PS, як виглядає плагін Jmeter, може також бути корисним для імітації споживачів.


6

Це насправді не відповідає питанням - надто багато факторів (рухоме визначення "середнього" обладнання, розмір повідомлень у черзі, кількість споживачів та те, як часто вони опитуються / як швидко вони завершують роботу над повідомленнями тощо) .). Вам дійсно потрібно орієнтувати своє оточення.

З цього приводу ознайомтеся з деякими з цих обговорень продуктивності RabbitMQ (включаючи деякі ідеї щодо того, як можна орієнтувати свою установку, щоб побачити, що можна очікувати від Кролика):


1
Мені відомо багато змінних. Тому я згадував такі речі, як "середнє" обладнання, в лапках, оскільки я розумію, наскільки нечітка ідея. Тим не менш, я вважав, що деякі цифри, отримані з досвіду людей, будуть корисні. Дякую за довідку.
користувач21640

1
@ user21640 Не тільки технічне обладнання додає нечітких запитань. Високочастотна торгівля може мати інше уявлення про "високу ємність", ніж ви чи я, і майже різні визначення прийнятної продуктивності. В кінцевому рахунку, єдина людина , чий досвід питань ви, у вашому середовищі, і в моєму досвіді один добре спланований місцевий орієнтир варто тисячі зовнішніх звітів , коли справа доходить до впевненості в плануванні ємності - ви ніколи не знаєте , коли ваша навантаження патологічного випадок: -)
voretaq7
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.