高负荷服务。肥皂与休息


8

我的任务是使用其SOAP或REST实现为Magento制作一个api。

我已经阅读了很多有关这两种服务的文章,也有使用它们的经验。但不是high-loaded projects

该服务的任务将通过SOAP或REST向客户端提供一些额外的信息。我都配置了,一切正常。

但是,问题是,如果每秒有100个客户呼叫我的服务,而200个,500个以此类推,那会更好呢?

我了解SOAP的开销,但是如果我使用REST,还需要使用oAuth,那么首先会发生什么呢?

有什么经验吗?

Answers:


11

您将需要定义一个明确的用例,以获得对问题的特定答案。除非我们在这里有详细的用例,否则我想就此提供一般建议:

SOAP vs REST SOAP和REST是访问Web服务的两种方式。SOAP使用XML进行请求。REST依赖于通过URL发出的HTTP请求,因此与SOAP相比,它确实是轻量级的。

SOAP的(Dis-)优点:

  • 定义明确的网络服务
  • 具有预先构建的标准(SOAPv1,SOAPv2,SOAPv2 WS-I)
  • 在企业环境中运行良好(由于标准)
  • 某些工具可以通过使用WSDL进行自动化
  • 与REST相比重量级

REST的(Dis-)优点:

  • 更容易使用
  • 更灵活
  • 学习曲线较小
  • 与SOAP相比效率/重量轻
  • 没有定义的Web服务结构(没有WSDL)

Magento SOAP API与REST API

请注意,并非针对REST API实现了所有功能。

我创建了一个小的性能测试脚本,该脚本仅通过SOAP API v1进行10x10登录和endSession请求。没有执行任何特定操作。在我的本地网络服务器上,有1个请求花费了0.9到1.4秒。

与其余部分进行比较:一旦对您的应用程序进行了授权(您需要通过单击“授权”对您的应用程序进行一次授权),在获得令牌和机密后,只需几毫秒即可准备好执行您的请求:2.0 -3.0 * 10 ^ -5秒本地。

性能测试

为了进行性能测试最终可以回答您的问题,您需要定义要求。

以下将很有趣:

  • 他们登录一次并执行多项操作,还是每个登录仅执行一项操作?
  • 他们执行什么样的请求?添加/更新产品,下订单,...?
  • SOAP API v1,SOAP API v2或SOAP v2 WSI与REST?

资源资源

这可能对您也很有趣:


1
好答案!我也进行了测试,仅制作oAuth并调用某种不做任何事情的方法(仅用于测试),大约需要0.4秒的时间。因此,开销很大,我在其他框架中编写了REST服务,但使用Magento Db来处理数据。谢谢
sergio
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.