10.2.4. メッセージの送信レートの設定

AMQ Broker は、プロデューサーがメッセージを生成できるレートを制限することもできます。プロデューサーレートは、1 秒あたりのメッセージ単位で指定します。デフォルトの -1 に設定すると、レート制限のあるフロー制御が無効になります。

メッセージの送信レートの設定

以下の例は、プロデューサーが Core JMS クライアントを使用している場合にメッセージを送信するレートを設定する方法を示しています。各例では、メッセージ送信の最大レートを 1 秒あたり 10 に設定します。

手順

  • プロデューサーがメッセージを送信できるレートを設定します。

    • Core JMS Client が JNDI を使用して接続ファクトリーをインスタンス化する場合は、接続文字列 URL の一部として producerMaxRate パラメーターを含めます。JNDI コンテキスト環境内に URL を保存します。以下の例では、jndi.properties ファイルを使用して URL を保存します。

      java.naming.factory.initial=org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactory
      java.naming.provider.url=tcp://localhost:61616?producerMaxRate=10
    • Core JMS クライアントが JNDI を使用して接続ファクトリーをインスタンス化しない場合は、値を ActiveMQConnectionFactory.setProducerMaxRate() に渡します。

      ConnectionFactory cf =  ActiveMQJMSClient.createConnectionFactory(...)
      cf.setProducerMaxRate(10);

関連情報

メッセージの送信速度を制限する方法の例は、INSTALL_DIR/examples/standardproducer-rate-limit の例を参照してください。