我打算使用Apache Thrift,但有些调用会长时间运行/阻塞,但仍然需要返回值,传统上它将通过回调返回。
我理解Thrift does not support回调(这改变了吗?)所以我正在考虑让函数暂停,直到返回响应。这样可以吗?如果RPC请求花费太长时间,Thrift会抱怨(超时)吗?
他们说Thrift不是用于双向通信,但它应该很容易用插座。
上下文:我在本地两个进程之间使用Thrift或IPC,因此服务器上不会有很大的负载,可以减轻长时间运行的HTTP请求会使服务器超载的担忧。
我错过了其他东西提供的解决方案吗?
答案 0 :(得分:1)
我知道Thrift不支持回调(这改变了吗?)
否(不支持),否(未更改)。
有些调用会长时间运行/阻塞,但仍然需要返回值,传统上它将通过回调返回。
是的,如果你想坚持做RPC的做事方式,或者在这方面技术上有限。
所以我正在考虑让函数阻塞直到响应 回。这样可以吗?
长时间通话是完全合法的解决方案。甚至轮询也可以是一种选择,当然除非你通过电话充斥服务器。取决于" long"完全是指。
如果RPC请求花费太长时间,Thrift会抱怨(超时)吗?
您可以在连接断开后始终发起新请求。
他们说Thrift并不打算进行双向通信 但它应该很容易使用套接字。
在本地设置中,两端都充当客户端和服务器确实可行,并且在您的情况下可能是更好的选择。
相比之下,在interblag中做到这一点要困难得多。因此,如果您有强烈的计划将解决方案稍后扩展到这种情况,这可能会产生一些额外的麻烦,将bidi解决方案重写为长时间运行的调用。如果不是这样,你可以放心地忽略这一段。