用于低延迟消息传递的REST。

时间:2009-03-09 01:06:07

标签: sockets rest messaging tibco

为什么你不会看到更多的人使用REST架构来实现客户端服务器系统。你看到人们使用套接字,或TIBCO RV或EMS或MQ,但我还没有看到太多基本的REST架构

有没有人知道为什么你会避免使用这种架构进行客户端/服务器通信以获得高吞吐量/低延迟

2 个答案:

答案 0 :(得分:8)

REST并不适合所有问题。

REST最适合资源管理。如果您正在编写Web服务(与客户端 - 服务器系统一样),那么您会发现需要与语言无关的数据表示,参数验证,客户端/服务器代码生成,错误处理,访问控制等内容。 REST基本上要求您自己编写这些内容。

另一方面,它添加了HTTP层。您可以无缝集成代理,缓存等,但由于HTTP头,Web服务器前端等原因,您确实会失去一些速度。

答案 1 :(得分:4)

我不知道我一定会避免它,但我可以想到一些原因,为什么我不能选择它来获得高吞吐量,低延迟的服务。首先,您必须处理整个Web堆栈才能将消息传递给您的服务。这可能会引入一些不必要的层和服务,从而延迟消息。自定义服务只需要支持服务本身所需的协议层。

其次,除非您的服务是Web服务器上托管的唯一服务,否则您将与其他服务请求竞争。虽然为您的服务提供自定义端点可能无法解决所有资源争用问题,但至少您不必竞争从其他服务到您的端点的访问。

第三,自定义协议只需要支持实际的服务相关协议信息,并且可能导致较小的数据包大小,因为您不需要支持额外的HTTP协议开销。这将特别影响交换小消息的协议,因为标头信息将是消息大小的一小部分。