すべてのプロダクト
Search
ドキュメントセンター

ApsaraMQ for RabbitMQ:接続とチャネル

最終更新日:Jun 05, 2025

このトピックでは、ApsaraMQ for RabbitMQ の接続とチャネルの概念について説明し、その使用上の注意点を示します。

接続

接続とは、物理的な伝送制御プロトコル( TCP )接続のことです。接続は、アプリケーションと ApsaraMQ for RabbitMQ の間に確立されます。接続は、認証、 IP アドレス解決、ルーティングなどの基盤となるネットワークタスクをサポートするために使用できます。アプリケーションと ApsaraMQ for RabbitMQ の間の接続の確立には、約 15 個の TCP パケットの相互作用が必要です。これにより、大量のネットワークリソースと ApsaraMQ for RabbitMQ リソースが消費されます。多数の接続は、ApsaraMQ for RabbitMQ に大きな負荷をかけ、 SYN フラッド攻撃に対する保護をトリガーすることさえあります。この場合、ApsaraMQ for RabbitMQ が応答に失敗し、ビジネスに影響を与える可能性があります。

dg_connection

チャネル

チャネルとは、物理的な TCP 接続に基づいて確立される仮想接続のことです。すべての AMQP ベースの操作は、アプリケーションと ApsaraMQ for RabbitMQ の間の接続のチャネルを介して実行されます。たとえば、キューはチャネルを介して作成され、メッセージはチャネルを介して送受信されます。各接続には複数のチャネルを含めることができます。チャネルは接続に依存しています。接続が閉じられると、その接続のすべてのチャネルも閉じられます。多数のアプリケーションを ApsaraMQ for RabbitMQ に接続してメッセージを送受信する場合、適切な数の接続を確立し、接続内の複数のチャネルを再利用して、システムリソースの使用量を削減することをお勧めします。

dg_channel

使用上の注意

  • 持続的接続を使用します。接続を頻繁に開いたり閉じたりしないでください。接続を頻繁に開いたり閉じたりする必要がある場合は、適切な数の接続を維持しながら、複数のチャネルを再利用します。インスタンスで接続とチャネルを開くために呼び出される API 操作の制限については、「制限」をご参照ください。

  • 接続数が少なく、消費されるデータ量が多い場合、消費の偏りが発生する可能性があります。この問題を防ぐために、各コンシューマーが確立する接続数、またはコンシューマーの数を増やすことができます。ただし、各コンシューマーが確立する接続数は同じである必要があります。すべてのコンシューマーが確立する接続の総数は 30 以上にすることをお勧めします。

  • 複数のスレッドが 1 つの接続を共有できます。複数のプロセスが 1 つの接続を共有する場合、接続を頻繁に開いたり閉じたりしないでください。そうしないと、ChannelNotFind エラーが発生する可能性があります。

  • プロデューサーとコンシューマーは、異なる接続を使用してメッセージを生成および消費します。