En primer lugar, debe comprender qué elementos de su lista tienen límites de escala que podría alcanzar y cuáles no. Algo de esto depende de la implementación, por lo que ayuda a leer lo interno, por ejemplo, el libro RabbitMQ en acción.
El número de colas está limitado por su RAM. El número de mensajes en juego, por otro lado, no está limitado por RAM porque RabbitMQ los pagina automáticamente en el disco. Una vez, accidentalmente obtuve casi 8 millones de mensajes en juego en un servidor de desarrollo cuando no estaba prestando atención.
Tampoco hay límite para los tamaños de los mensajes, pero realmente debería pensarlo dos veces si el tamaño de un solo mensaje supera los 512K. Terminé usando una memoria caché para pasar objetos grandes entre aplicaciones y solo envié mensajes de control más pequeños que incluían una clave de memoria caché. Pero si realmente lo desea, puede enviar enormes archivos JPEG y objetos binarios como archivos JAR como mensajes.
El número de suscriptores es un límite del sistema operativo porque un suscriptor necesita al menos un socket TCP abierto. Por supuesto, eso se puede ajustar en la mayoría de los sistemas operativos, por lo que su kilometraje variará y es por eso que debe probar su modelo. He estado usando JMETER para probar nuestras aplicaciones web y acabo de descubrir este complemento AMQP https://github.com/jlavallee/JMeter-Rabbit-AMQP pero aún no lo he usado. En cualquier caso, este es el tipo de prueba que le dirá rápidamente lo que su hardware (o configuración de VM) manejará razonablemente.
Lo único difícil que tiene es probar un gran número de consumidores en las colas de fanout. Es posible que también desee comparar utilizando un intercambio de temas, en el que los consumidores se suscriban utilizando una clave de enlace comodín (*) que logra el mismo resultado final. Intente ejecutar esta prueba con tantas máquinas diferentes como sea posible para asegurarse de que de alguna manera no se encuentre con un cuello de botella causado por un solo servidor que ejecuta procesos de consumo. PD: parece que el plugin Jmeter también puede ser útil para simular consumidores.