これまで、RabbitMQ コンシューマー クライアントはプリフェッチ値 1 を使用していました。パフォーマンスを向上させるために値を増やしたいと考えています。値を 2 に設定すると、RabbitMQ サーバーは各コンシューマーに一度に 2 つのメッセージを送信するので、2 つのメッセージを解析し、最初のメッセージが処理されて確認されるまで 2 番目のメッセージをリストに保存する必要がありますか? それとも、API が舞台裏でこれを処理しますか?
Java AMQP クライアント ライブラリを使用しています。
ConnectionFactory factory = new ConnectionFactory();
...
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
channel.basicQos(2);
QueueingConsumer consumer = new QueueingConsumer(channel);
channel.basicConsume(CONSUME_QUEUE_NAME, false, consumer);
while (!Thread.currentThread().isInterrupted()) {
try {
QueueingConsumer.Delivery delivery = consumer.nextDelivery();
String m = new String(delivery.getBody(), "UTF-8");
// Will m contain two messages? Will I have to each message and keep track of them within a List?
...
}