Когда rabbitmq использует противодавление tcp?
Согласно документации Pika "брокер RabbitMQ использует TCP Backpressure для замедления вашего клиента, если он слишком быстро доставляет сообщения". Я зарегистрировал обратный вызов, и он еще не вызван. В моей очереди более 40 миллионов сообщений, и она растет. Установив множитель противодавления на -1, я могу получать вызов при каждом публиковании сообщения, но это полезно только для отладки.
1 ответ
Дело не в том, когда "ваш клиент... доставляет сообщения слишком быстро", а в том, когда какой-либо клиент доставляет сообщения слишком быстро.
RabbitMQ следит за объемом используемой памяти и будет создавать противодавление, когда оно превышает определенную долю физической памяти на машине. По умолчанию эта доля равна 0,4, но ее можно изменить. См. http://www.rabbitmq.com/memory.html для получения более подробной информации.