Azure Service Bus を探索する
Azure Service Bus は、メッセージ キューと、パブリッシュとサブスクライブのトピックを備えたフル マネージド エンタープライズ統合メッセージ ブローカーです。 Service Bus は、アプリケーションとサービスを分離するために使用されます。 データは、メッセージを使用してさまざまなアプリとサービス間で転送されます。 メッセージは、メタデータで装飾されたコンテナーであり、データを格納します。 データは、次のような一般的な形式でエンコードされた構造化データを含め、どのような種類の情報でもかまいません。JSON、XML、Apache Avro、プレーンテキスト。
一般的なメッセージング シナリオの例を次にいくつか示します。
- メッセージング。 販売または購入の注文、仕訳帳、在庫移動などのビジネス データを転送します。
- アプリケーションの切り離し。 アプリケーションとサービスの信頼性とスケーラビリティを向上します。 クライアントとサービスが同時にオンラインになっている必要はありません。
- トピックとサブスクリプション。 公開元とサブスクライバーの間で 1:n の関係が可能になります。
- メッセージ セッション。 メッセージの順序付けやメッセージの遅延が必要なワークフローを実装します。
Service Bus のレベル
Service Bus には、Basic レベル、Standard レベル、Premium レベルが用意されています。 Service Bus Messaging のプレミアム レベルは、ミッション クリティカルなアプリケーションのスケール、パフォーマンス、可用性に関する一般的な顧客の要求に対応します。 プレミアム レベルは、実稼働シナリオに推奨されます。 機能セットとほぼ同じですが、Service Bus メッセージングのこれら 2 つのレベルは、さまざまなユース ケースに応えるように設計されています。 使用可能なレベルの詳細については、「Service Bus の価格」を参照してください。
Premium レベルと Standard レベルの大まかな違いを次の表に示します。
Premium | Standard |
---|---|
高スループット | 変わりやすいスループット |
予測可能なパフォーマンス | 変わりやすい待機時間 |
固定価格 | 従量課金制の変わりやすい料金 |
ワークロードをスケールアップおよびスケールダウンする機能 | 該当なし |
最大 100 MB のメッセージ サイズ | 最大 256 KB のメッセージ サイズ |
高度な機能
Service Bus には、より複雑なメッセージングの問題を解決できる高度な機能があります。 次の表で、これらの機能のいくつかについて説明します。
機能 | 説明 |
---|---|
メッセージ セッション | Service Bus の先入れ先出し (FIFO) 処理を作成するには、セッションを使用します。 メッセージ セッションでは、関連メッセージのバインドなしシーケンスの排他的な順序指定処理が可能です。 |
自動転送 | 自動フォワード機能は、キューまたはサブスクリプションを、同じ名前空間内の別のキューまたはトピックにチェーンします。 |
配信不能キュー | Service Bus は配信不能キュー (DLQ) をサポートしています。 DLQ は、受信者に配信できないメッセージを保持します。 Service Bus を使用すると、DLQ のメッセージを削除し、検査することができます。 |
スケジュールされた配信 | メッセージをキューまたはトピックに送信して、処理を遅延させることができます。 特定の時点にシステムで処理できるようにジョブをスケジュールすることができます。 |
メッセージ遅延 | キューまたはサブスクリプション クライアントは、メッセージの取得を遅延させることができます。 メッセージは、キューまたはサブスクリプションに留まり、確保されます。 |
トランザクション | トランザクションにより、複数の操作が 1 つの実行スコープにグループ化されます。 Service Bus は、単一トランザクションのスコープ内の単一メッセージング エンティティに対するグループ化操作をサポートしています。 メッセージ エンティティは、キュー、トピック、またはサブスクリプションとすることができます。 |
フィルター処理とアクション | サブスクライバーは、トピックから受信するメッセージを定義できます。 これらのメッセージは、1 つ以上の名前付きのサブスクリプション ルールの形式で指定されます。 |
アイドル状態時の自動削除 | アイドル状態時の自動削除機能を使用すると、アイドル間隔を指定できます。この間隔が経過すると、キューは自動的に削除されます。 最小時間は、5 分です。 |
重複検出 | エラーが発生すると、クライアントは送信操作の結果について不明な状態になる可能性があります。 重複検出を使用すると、送信者は同じメッセージを再送信したり、キューまたはトピックで重複するコピーを破棄したりすることができます。 |
セキュリティ プロトコル | Service Bus は、Shared Access Signatures (SAS)、ロールベースのアクセス制御 (RBAC)、および Azure リソースのマネージド ID などのセキュリティ プロトコルをサポートしています。 |
geo ディザスター リカバリー | Azure リージョンまたはデータセンターでダウンタイムが発生すると、geo ディザスター リカバリーにより、異なるリージョンまたはデータ センターでデータ処理を継続できます。 |
セキュリティ | Service Bus は、標準の AMQP 1.0 および HTTP/REST プロトコルをサポートしています。 |
標準とプロトコルへの準拠
Service Bus のプライマリ ワイヤ プロトコルは Advanced Messaging Queuing Protocol (AMQP) 1.0 (オープンな ISO/IEC 標準) です。 これにより、Service Bus とオンプレミスのブローカー (ActiveMQ や RabbitMQ など) に対して機能するアプリケーションを作成できます。 AMQP プロトコル ガイドには、そうした抽象化を構築する場合に役立つ詳細情報が記載されています。
Service Bus Premium は、Java/Jakarta EE の Java Message Service (JMS) 2.0 API に完全に準拠しています。
クライアント ライブラリ
完全にサポートされている Service Bus クライアント ライブラリを Azure SDK 経由で利用できます。
- .NET 用 Azure Service Bus
- Java 用 Azure Service Bus ライブラリ
- Java JMS 2.0 用 Azure Service Bus プロバイダー
- JavaScript および TypeScript 用の Azure Service Bus モジュール
- Python 用 Azure Service Bus ライブラリ