RabbitMQ クラスターにメッセージを送信するアプリケーションがあります。そのクラスターが何らかの理由でダウンした場合、それらのイベントは Bunny ruby gem でバッファーされます。そのクラスターが起動すると、バッファリングされたすべてのメッセージが一度に送信され、RabbitMQ にパブリッシュする側の CPU 負荷が大幅に増加します。
クラスタが復旧したときに 1 秒あたりに送信されるメッセージをレート制限して、1 秒あたり 100 メッセージ程度でしか送信されないようにする簡単な方法はありますか?
私が変更しているコードは、logstash AMQP 出力プラグインです。
https://github.com/logstash/logstash/blob/master/lib/logstash/outputs/amqp.rb