メッセージキューイング サービスは、サービス モデルとしてのソフトウェアを使用してコンピューティング クラウドに展開されるメッセージ指向ミドルウェアまたは MOMです。サービス サブスクライバーは、キューやトピックにアクセスし、ポイントツーポイントまたはパブリッシュおよびサブスクライブパターンを使用してデータを交換します。
イベント駆動型サービスとメッセージ駆動型(キュー駆動型とも呼ばれる)サービスを区別することが重要です。イベント駆動型サービス( AWS SNSなど)は消費者から切り離されています。一方、キュー/メッセージ駆動型サービス(AWS SQSなど)は消費者と結合されています。[1]
メッセージキューは、急増するワークロードを処理するための優れたバッファになりますが、容量には限りがあります。Gregor Hohpe によると、メッセージキューには、管理可能な容量を超えてキューがいっぱいになるのを防ぎ、システムを安定させるために、適切なメカニズム (フロー制御とも呼ばれます) が必要です。[2]
目標
メッセージ キューイング サービスは、社内のメッセージング インフラストラクチャの運用に伴う従来のオーバーヘッドを排除することを目的としています。これらの運用オーバーヘッドには次のものが含まれます。
- ピーク需要に対応するために未使用の容量を設置
- メッセージングインフラの維持に必要な人材
- リソースのプロビジョニングを待つプロジェクトのアイドル時間
- メッセージングリソースを分離する必要がある
メッセージ キューイング サービスは、コストの削減に加えて、メッセージング リソースへのアクセスを簡素化し、組織内および組織間の統合作業を容易にすることを目指しています。
利点
メッセージ キューイング サービスは、コストの削減、パフォーマンスと信頼性の向上によって新たな価値も生み出します。これらのメリットを実現するために、メッセージ キューイング サービスは、ストレージ、ネットワーク、メモリ、処理能力などのクラウド コンピューティングリソースを活用します。事実上無制限のクラウド コンピューティング リソースを使用することで、メッセージ キューイング サービスはインターネット規模のメッセージング プラットフォームを提供します。
アクセシビリティ
メッセージ キューイング サービスには、 Java Message Service、AMQP、RESTスタイルの API、Web サービスなどのさまざまなプロトコルを通じてアクセスできます。
使用例
- 患者は、プロバイダーのネットワーク外の病院に入院します。プロバイダー病院は、メッセージ キューイング サービス プラットフォームを使用して、患者の治療に関するリアルタイム イベントを医師の病院に送信できます。病院間の統合コストは、メッセージング プロトコル、VPN、その他の詳細を構成する必要がないため、わずかです。
- 何千もの異なるソースからのイベントを処理する情報処理組織は、情報プロバイダーにメッセージをキュー サービスに配置するように依頼し、統合コストを削減できます。
- コールセンターは、請求システムが利用できない場合でも、請求書の発行要求に引き続き対応することができます。
- 車両に組み込まれたテレメトリデバイスは、ほぼリアルタイムで統計情報を計算するアプリケーションと安全に通信できます。ラウンドロビン メッセージングにより、車両サプライヤーは売上の増加に応じてコンピューティング リソースを追加できます。
- セキュリティ取引アプリケーションは、現時点では利用できない可能性のあるP&Lアプリケーションに更新を投稿できます。
- 技術者が X 線写真を送信すると、ロンドン、シカゴ、サンパウロのアプリケーション インスタンスが、同じキューをリッスンして誰が最初にメッセージを取得するかを競います。
ベンダー
[3] IBM MQはIBM CloudとAmazon Web Servicesで利用できるマネージドサービスを提供しています。
- Microsoft Azure サービス バス
- [4] Service Bus は、キュー、トピックとサブスクリプション、ルール/アクションを提供して、パブリッシュ/サブスクライブ、時間的分離、負荷分散のシナリオをサポートします。Azure Service Bus は AMQP 上に構築されており、既存の AMQP 1.0 クライアント スタックは、直接、または既存の .Net、Java、Node、Python クライアント経由で Service Bus と対話できます。Standard レベルと Premium レベルでは、従量課金制または大規模なリソースの分離が可能です。
- Oracle メッセージングクラウドサービス
- [5]このサービスは、非同期通信用のアプリケーションにメッセージング ソリューションを提供し、Java Message Service (JMS) API 仕様の影響を受けています。HTTP を理解するアプリケーション プラットフォームであれば、REST インタフェースを介して Oracle Messaging Cloud Service を使用することもできます。Java アプリケーションの場合、Oracle Messaging Cloud Service は、JMS 1.1 インタフェースを実装および拡張する Java ライブラリを提供します。Java ライブラリは、REST API のクライアントとして動作することで JMS API を実装します。
- Amazon シンプルキューサービス
- [6]ネイティブで最大256K、またはS3経由でペイロードを送信することで最大2GBのメッセージをサポートします。拡張性、耐久性、回復力に優れています。大規模なスケールを提供するために、ルーズFIFOと「少なくとも1回」の配信を提供します。REST APIとオプションのJava Message Serviceクライアントをサポートします。低レイテンシ。Amazon Web Servicesを活用します。
- アイアンMQ
- [7]最大64kのメッセージに対応し、順序を保証し、一度だけの配信を保証し、メッセージの取得に遅延はありません。REST APIとbeanstalkdオープンソースプロトコルをサポートしています。AWSやRackspaceを含む複数のクラウドで動作します。スケーリングはユーザーが管理する必要があります。
- ストームMQ
- [8]オープンプラットフォームは最大50Mbのメッセージをサポートします。AMQPを使用してベンダーロックインを回避し、言語中立性を提供します。Locate-Itオプションにより、顧客はデータの場所を常に監査し、データ保護の原則を満たすことができます。
- あらゆるポイントMQ
- [9]アプリケーション間の高度な非同期メッセージングシナリオを実行するエンタープライズマルチテナントクラウドメッセージングサービス。Anypoint MQはAnypoint Platformと完全に統合されており、ロールベースのアクセス制御、クライアントアプリケーション管理、コネクタを提供します。
参照
参考文献
- ^ Chandrasekaran, Premanand; Krishnan, Karthik; Ford, Neal; Byars, Brandon; Buijze, Allard (2022). Java によるドメイン駆動設計 - 実践ガイド. Packt Publishing. ISBN 9781800564763。
- ^ Hohpe, Gregor.エンタープライズ統合パターン: メッセージングソリューションの設計、構築、展開。Addison -Wesley Professional。ISBN 978-0321200686。
- ^ 「IBM MQ on Cloud」。IBM 2018-11-16。
- ^ 「Microsoft Azure Service Bus」。2017 年 3 月 23 日。
- ^ 「Oracle Messaging Cloud Serviceの使用」。Oracleヘルプセンター。2018年4月20日閲覧。
- ^ 「Amazon Simple Queue Service (API バージョン 2012-11-05)」。2012-11-05。
- ^ "IronMQ". iron.io. 2016-08-05 にオリジナルからアーカイブ。2017-01-11に取得。
サービスとコンポーネント間の信頼性の高い通信方法を提供することで、分散システムを結び付けます。 可用性が高く、設計上永続的であり、ベストエフォートの 1 回限りの配信を備えた IronMQ は、最新のアプリケーション アーキテクチャ向けの最も強力なクラウド ネイティブ ソリューションです。
- ^ 「StormMQ」 2010-05-03. 2011-07-16時点のオリジナルよりアーカイブ。
- ^ 「AnypointMQ」. 2016年8月30日.
