რამდენი მომხმარებელი ერთდროულად შეუძლია მომსახურება RabbitMQ-ის ერთ რიგში შეტანილი შეტყობინებებით?
sobes.tech AI
პასუხი AI-სგან
RabbitMQ-ში ერთდროულად ერთ რიგიდან შეტყობინებების მომსახურების მომხმარებელთა რაოდენობაზე მკაცრი შეზღუდვა არ არსებობს. თეორიულად, შეიძლება ძალიან ბევრი მომხმარებელი მიერთდეს, და RabbitMQ გაანაწილებს შეტყობინებებს მათ შორის round-robin პრინციპით.
თუმცა პრაქტიკაში, მაქსიმალური მომხმარებელთა რაოდენობა შეზღუდულია სერვერის რესურსებით (CPU, მეხსიერება, ქსელი) და პროგრამის შესრულებით. ჩვეულებრივ, ერთი რიგისთვის მომხმარებელთა რაოდენობა მერყეობს რამდენიმე ათეულიდან ასეულამდე, მაგრამ არსებობს უფრო მასშტაბური სისტემებიც, სადაც ათასობით მომხმარებელია.
ძალიან ბევრი მომხმარებლის არსებობა შეიძლება გამოიწვიოს შესრულების შემცირება კონტექსტის გადართვის ხარჯებისა და ქსელური დაგვიანებების გამო.
Node.js-ის გამოყენებით, amqplib-ის გამოყენებით რამდენიმე მომხმარებლის კონფიგურაციის მაგალითი:
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);
}
});
}
// რამდენიმე მომხმარებლის დაწყება
for (let i = 0; i < 10; i++) {
startConsumer();
}
აქ, 10 მომხმარებელი ერთდროულად კითხულობს ერთ რიგიდან.