Rabbitmqレコード

1328 ワード

  • queueは、同じexchange bindと複数のroutingKey
  • とすることができる
  • qos(prefetchCount)の意味:prefetchCountの数はackなしで一度に取得するメッセージの数を表し、スループット
  • を増加することができる.
  • 消費者はキューのみに関係し、routingKey exchageとは関係ありません.
  • exchageはメッセージを指定キューに入れる責任を負い、消費者とは関係ない
  • .
  • 排他キューは、このキューがこのconnectionによって排他されることしかできないことを示す
  • キュー配信メッセージは、ポーリングメカニズムを使用する、すなわち、複数の消費者が同じキューを消費する場合、消費者は、メッセージを受信した
  • をポーリングする.
  • のデフォルトでは、exchangeがメッセージを処理できない場合はメッセージが破棄されます.処理されているかどうかを知るには、mandatoryパラメータを使用してメッセージをパブリッシュします.mandatoryをオンにすると、brokerはbasicを送信します.return送信者
  • rabbitmqはimmediateパラメータをサポートしていません.immediate=trueとは、メッセージを送信するときに消費者がメッセージを処理できるかどうかを判断し、そうでなければすぐに破棄することです.同様の機能を実装するには、DLX(デッド・メッセージ・キュー)
  • を使用します.
  • パブリッシャーconfirmモードを開くjavaメソッド:
  • final AMQP.Confirm.SelectOk selectOk = channel.confirmSelect();
    channel.basicPublish(EXCHANGE, ROUTE_KEY, true, false, null, message.getBytes());
    final boolean b = channel.waitForConfirms();
    ....
    

    これもトランザクションの代替方法です.トランザクション・モードを開始すると250倍のパフォーマンスが低下するためです.channel.waitForConfirms();メソッドの実行時にブロックされます.
  • rabbitmqは、キュー全体のメッセージの有効期限の設定だけでなく、各メッセージの有効期限の設定もサポートします.2つが同時に設定されている場合は、2つのうち最小の
  • を取得します.
  • rabbitmqはキューの期限切れをサポートし、消費者がいない場合、期限切れになると自動的にキュー
  • が削除されます.
  • デッドメッセージキュー遅延の注意事項:
  • 後のメッセージの有効期限が前のメッセージより小さい場合、デッドメッセージは他のキューに順番に挿入されます.