27

わかりました..それで、MQ とその目的/ユースケースなどについて勉強し始めました.私の既存のアプリケーション (JSP などを使用して作成された Web..) は、RestFUL インターフェイスを使用して、リモート サーバーと通信し、サーバーからデータを送信/受信します。

多くの場合、リモート サーバーの接続に対処する必要があります。同期の問題は常に存在します。

私たちの側からメッセージが送信されましたが、リモート サーバーがダウンしました。またはその逆。

MQ に出くわし、リモート サーバーからのメッセージの送受信が懸念される場合に信頼できることがわかりました。

しかし、REST を使用すると、MQ の必要性全体が少しぼんやりしているように見えます.. 基本的に、MQ と RestFUL の違いをいくつか探しています..

他のブログ投稿で、RestFUL ドメインでの研究の増加に伴い、MQ はゆっくりとペースを緩めるだろうと読みました..

MQ についてはよくわからないので、何もコメントしませんが、RestFUL での作業は確かに楽しいものです。

誰かが RestFUL と MQ の使用の違いを提供してくれれば幸いです。

4

3 に答える 3

32

最大の違いの 1 つは、REST は同期処理を意味するのに対し、MQ はより多くの場合非同期であることです。すでに述べたように、MQ はプロデューサーとコンシューマーを分離する方法であり、同時にオンラインにする必要はありませんが、システムは全体として引き続き機能します。ユースケースが低レイテンシーの応答 (ブラウザーを使用するユーザーなど) を意味する場合、同期セマンティクスが必要であり、この場合、MQ は単なる別のプロトコルです。レイテンシーが問題にならない場合、または一方向にしかメッセージが送信されない場合、MQ は非常に実行可能な代替手段となる可能性があります。MQ が無料で提供する機能の 1 つは、コンシューマー側でのロード バランシング (およびある程度の HA) です。

REST は、クライアント/サーバーの互換性に関してはるかに柔軟です。ほとんどすべてのプラットフォームで REST クライアントを実行できますが、MQ には当てはまりません。これが、MQ が時代遅れになっていると主張する人がいる理由だと思います。このため、MQ はパブリック API には適していません。ただし、2 つのサーバー システム間の通信では、MQ は依然として非常に優れたオプションです。REST のユニークな機能は、リソース (ハイパーメディア) の WEB 動作を完全に模倣できることです。つまり、1 つのリソースが他のリソースへの参照を含むなどです。MQ はそのようなものを提供できません。

パフォーマンスは別の問題かもしれません。正確な数値を示すことはできませんが、MQ の方がスループットが高い傾向にあります。

セキュリティ要件により、まれにクライアントがサーバーに直接接続できない場合があります。このような場合、MQ はほとんどサーバーにデータを送信する唯一の方法です。

要約すると、経験則として REST を使用します

  • パブリック API または
  • 同期処理が必要な場合

MQ

  • 限られた量のサーバー側システムのみが関与する場合
  • 非同期処理が許容されるか、または
  • REST のパフォーマンスが不十分
于 2013-10-08T19:14:15.323 に答える
13

REST と MQ はどちらも、リモート システム (およびローカル) 間の通信を可能にします。

REST 通信では、通信を成功させるために、コンシューマーと REST サービス プロバイダーが実行されている必要があります。ポイントツーポイント通信です。

MQ モデルでは、プロデューサーとコンシューマーが同時に実行されている必要はありません。プロデューサーとコンシューマーは直接対話しません。メッセージ ブローカーは、メッセージの処理、永続化などを処理します。ポイント ツー ポイント モデルとパブリッシュ/サブスクライブ モデルの両方がサポートされています。パブリッシュ サブスクライブ モデルでは、メッセージは複数のコンシューマーによって消費される可能性があります。

これらは、それらを区別するいくつかの基本的なポイントにすぎません。REST と MQ について語る SO に関する投稿は十分にあります。

于 2013-10-11T15:50:23.917 に答える
5

どちらも抽象化ですが、レベルが異なります アプリケーションは RESTful API を提供できますが、内部ではメッセージ キューなどのさまざまなコンポーネントを利用します。

簡潔で汚い: RESTful は、アプリまたはコンポーネントを構築する方法のベスト プラクティスを宣言し、MQ はコンポーネント間のメッセージングに使用されます。

RPC と混同されるかもしれませんが、Web コンテキストでは MQ と同じではありません。

于 2013-10-08T12:13:31.650 に答える