Mekkora lehet az egyidejű fogyasztók maximális száma egy RabbitMQ sorban?
sobes.tech MI
Válasz az MI-től
A RabbitMQ-ban nincs szigorú korlátozás arra, hogy hány fogyasztó szolgálhat ki egyszerre üzeneteket egy sorból. Elméletileg sok fogyasztót lehet csatlakoztatni, és a RabbitMQ a körkörös (round-robin) elv szerint osztja szét az üzeneteket közöttük.
Azonban a gyakorlatban a maximális fogyasztói szám a szerver erőforrásaitól (CPU, memória, hálózat) és az alkalmazás teljesítményétől függ. Általában egy sorhoz tartozó fogyasztók száma néhány tucat és száz között változik, de léteznek nagyobb rendszerek is, amelyek ezrekből állnak.
Fontos figyelembe venni, hogy túl sok fogyasztó csökkentheti a teljesítményt a kontextusváltási költségek és a hálózati késleltetések miatt.
Példa több fogyasztó konfigurálására Node.js-ben az amqplib használatával:
const amqp = require('amqplib');
async function startConsumer() {
const connection = await amqp.connect('amqp://localhost');
const channel = await connection.createChannel();
const queue = 'task_queue';
await channel.assertQueue(queue, { durable: true });
channel.prefetch(1);
channel.consume(queue, msg => {
if (msg !== null) {
console.log(`Received: ${msg.content.toString()}`);
channel.ack(msg);
}
});
}
// Több fogyasztó indítása
for (let i = 0; i < 10; i++) {
startConsumer();
}
Itt 10 fogyasztó jön létre, amelyek egyidejűleg olvasnak ugyanabból a sorból.