无论您是使用REST架构还是使用通过HTTP隧道传输的SOAP协议,HTTP在协议级别都完全不受限制。
您的主要限制是内存,尤其是如果您要传输几个数兆字节的有效负载。使用一个足够聪明的处理程序和一个兼容的请求,您可以选择在处理之前将较小的请求直接传输到内存,将较大的请求直接传输到磁盘。
像这样的细节可能会限制你选择的框架可以为你做多少,因为大多数可能会直接进入内存。无论你是否可以改变这种状况,或者根据请求提出请求,都取决于框架,并可能希望改变它。
SOAP作为协议的选择可能不相关。它只是一个简单的XML信封,除非您也选择使用SOAP编码对消息进行编码。
既然您也想支持JSON,那么SOAP堆栈可能只会阻碍原始HTTP处理后端。
你没有提到你的API的复杂性,但你可能会用一个框架来解决大部分问题,并且为大型的重要事务编写一个自定义处理程序。
您的每秒交易量不会很高,因为交易本身会非常大。如果你正在流入磁盘,你也会有很大的I/O影响(不管怎么样,除非你将RAM中的数据转换并从插槽中分离出来,而不是保存它) 。所以,I/O吞吐量可能会成为您的主要瓶颈,因为它会限制您的整体性能。
如果你从消费者那里获得上传,你可能会得到每秒大约150K字节(例如大量消费者上传速度)。如果您有一个可以推动的I/O通道,例如持续60MB /秒,那就是400个同时连接。所以,这应该能让你对基于预期交易量的机器扩展有所了解(当然,你已经完成了这个分析 - 我只是在做这件事情)。每笔交易上传300K,这是每笔交易2美元,所以200 TPS。这是另一个可用的数字(根据您的数据库可能支持的数据等等,特别是如果您将有多台机器供应它时)。
现代的CPU很恶心,所以PHP或其他应该没问题 - 这不会是你的问题。
也许我误解了这个过程,但是REST有效载荷没有作为HTTP/S上的URL的一部分传播,因此将如下所示:http://site.com/action/?var= { 3:{foo:“bar”}}?我认为SOAP背后的想法是,有效载荷被封装,并没有作为URI的一部分。我想这可能是我困惑的地方。如果这种情况不明显,我对此不熟悉......我关心在URL中推送大量数据。 – skub 2012-01-16 13:35:40