Web services 后端基于Rest的服务

Web services 后端基于Rest的服务,web-services,rest,grails,Web Services,Rest,Grails,我们建立了一个3000多万用户的在线社区,它的后端有RESTful服务,前端使用RESTful服务。 我担心的是:使用REST作为内部数据传输协议可以吗,或者与Java的二进制序列化协议(依赖于语言)相比,它会显著降低性能?还有什么其他方法/协议可以用来保持it语言独立性和最大速度?REST方法可以很好,但http层可以降低速度。 如果在后端使用REST,则应确保后端和前端之间的连接保持打开,而不是在每次请求时重新打开 有关http keep alive的更多详细信息可以在此处找到:这是您在做出

我们建立了一个3000多万用户的在线社区,它的后端有RESTful服务,前端使用RESTful服务。
我担心的是:使用REST作为内部数据传输协议可以吗,或者与Java的二进制序列化协议(依赖于语言)相比,它会显著降低性能?还有什么其他方法/协议可以用来保持it语言独立性和最大速度?

REST方法可以很好,但http层可以降低速度。 如果在后端使用REST,则应确保后端和前端之间的连接保持打开,而不是在每次请求时重新打开


有关http keep alive的更多详细信息可以在此处找到:

这是您在做出决策之前必须衡量和比较的内容。这取决于传输的信息、频率等。序列化可能不是瓶颈。但是,考虑这个比例是个不错的主意。

< P>一个好处,REST给你在前端层和后端层之间的灵活性是在中间添加一层HTTP缓存来提高性能,而不需要修改现有层中的任何一个。对于扩展后端的负载平衡也是如此,因为HTTP负载平衡器非常容易理解和部署

REST的这两个好处可以带来比更传统的RPC序列化技术更大的好处,这取决于具体情况,特别是如果您有“慢”的后端进程,可以从缓存或负载平衡中获益


REST胜出的另一个地方是,如果您需要使用后端服务扩展客户群(我认为您暗示了对语言独立性的渴望)。基于REST的服务层不仅允许您自由地混合客户端语言,而且还允许您轻松地向第三方开发人员开放API,几乎不需要额外的努力。作为一种商业模式,拥有一个供其他人构建的平台已被证明是非常成功的,让您的开发尽可能开放和灵活也无妨。

感谢您的回复,您是否有过使用rest服务保持活力的经验?我的意思是,你知道具体应该调查什么吗?检查我添加的链接并构建一个测试场景,以测量时间。我们使用基于Java的GRAILS。默认情况下,它使用轮询(http.keepAlive=true)。多亏了这个性能基准比较了与不同序列化库相关的开销:-与任何基准一样,您的里程可能会根据您的用例而有所不同。