【问题标题】:Use Apache Thrift for two-way communication?使用 Apache Thrift 进行双向通信?
【发布时间】:2015-04-29 01:20:31
【问题描述】:

是否可以使用 Apache Thrift 在客户端和服务器之间实现双向通信?因此,不仅能够进行从客户端到服务器的 RPC,而且还可以反过来呢?在我的项目中,我要求服务器还必须将一些数据推送到客户端,而在此之前没有被客户端询问。

【问题讨论】:

    标签: rpc thrift


    【解决方案1】:

    有两种方法可以使用 Thrift 实现这一目标。

    1. 如果两端或多或少是对等点,并且您通过套接字或管道连接它们,您只需在两端设置一个服务器和一个客户端,就大功告成了。然而,这并不适用于所有情况,尤其是 HTTP。

    2. 如果你通过HTTP或类似的通道连接服务器和客户端,有一种技术叫做“long polling”。它基本上需要客户端像往常一样调用服务器,但是只有当服务器想要将一些数据发送回客户端时,调用才会返回。客户端收到数据后,如果对更多数据仍然感兴趣,则再次调用。

    正如 Denis 所指出的,根据您的具体用例,您可能需要考虑使用 MQ 系统。请注意,仍然可以使用 Thrift 对队列中的消息进行反序列化/序列化。 contrib folder 有一些示例,展示了如何将 Thrift 与 ZMQ、Rebus 等一起使用。

    【讨论】:

      【解决方案2】:

      那么你最好使用队列,例如零MQ。

      【讨论】:

      • 我不确定 a) 是否回答了问题,b) 是否适合 OP 没有详细告诉我们的用例。假设您可以建立 ZMQ 连接(顺便说一句,它甚至不是真正的 MQ 系统)假设某些我们还不知道的事情。
      猜你喜欢
      • 1970-01-01
      • 2015-10-24
      • 1970-01-01
      • 2012-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多