高負荷のサービス。ソープvsレスト


8

SOAPまたはRESTの実装を使用してMagentoのAPIを作成するタスクがあります。

私は両方のサービスについてたくさん読んだし、それらの経験もある。しかし、ではありませんhigh-loaded projects

このサービスのタスクは、SOAPまたはRESTを介してクライアントに追加情報を提供します。両方を設定しましたが、すべて問題ありません。

しかし、質問は、1秒あたり100、200、500などのサービスを呼び出すクライアントが100ある場合、何が良いでしょうか?

SOAPオーバーヘッドについて知っていますが、RESTを使用する場合、oAuthも使用する必要があるので、最初に何が落ちますか?

その経験はありますか?

回答:


11

質問に対する具体的な回答を得るためには、明確なユースケースを定義する必要があります。ここに詳細なユースケースがない限り、私はそれに関する一般的なアドバイスで答えたいと思います:

SOAPとREST SOAPとRESTは、Webサービスにアクセスする2つの方法です。SOAPはリクエストにXMLを使用します。RESTは、URLを介したHTTPリクエストに依存しているため、SOAPと比較して非常に軽量です。

(短所)SOAPの利点:

  • 明確に定義されたWebサービス
  • ビルド済みの標準(SOAPv1、SOAPv2、SOAPv2 WS-I)
  • エンタープライズ環境で正常に動作します(標準により)
  • 一部のツールは、WSDLを使用して自動化できます
  • RESTと比較してヘビー級

(欠点)RESTの利点:

  • 使いやすい
  • より柔軟
  • 学習曲線が小さい
  • SOAPと比較した効率/軽量
  • 未定義のWebサービス構造(WSDLなし)

Magento SOAP APIとREST API

すべての機能がREST APIに実装されているわけではないことに注意してください。

SOAP API v1を介して10x10のログインとendSessionリクエストのみを実行する小さなパフォーマンステストスクリプトを作成しました。特定のアクションは実行されませんでした。ローカルWebサーバーで1つの要求にかかった時間は0.9秒から1.4秒です。

残りと比較するには:アプリケーションが承認されると(「承認」をクリックしてアプリケーションを一度承認する必要があります)、トークンとシークレットを取得した後、リクエストを実行する準備が整うまでに数ミリ秒しかかかりません:2.0 -3.0 *ローカルでは10 ^ -5秒。

性能試験

最終的に質問に答えることができるパフォーマンステストを実施するには、要件を定義する必要があります。

以下は興味深いでしょう:

  • 彼らは一度ログインして複数のアクションを実行しますか、それともそれぞれが1つのアクションのみでログインしますか?
  • 彼らはどのような要求を実行しますか?製品の追加/更新、注文、...?
  • SOAP API v1、SOAP API v2またはSOAP v2 WSI vs REST?

資源

これはあなたにとっても興味深いかもしれません:


1
正解です。私もテストを行いました。oAuthのみを作成し、何もしないメソッドを呼び出すだけで約0.4秒あります。テストのためだけです。オーバーヘッドが大きいため、他のフレームワークでRESTサービスを作成しましたが、Magento Dbを使用してデータを操作しています。感謝
sergio
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.