首页 文章

使用Apache Thrift进行双向通信?

提问于
浏览
0

是否可以使用Apache Thrift在客户端和服务器之间实现双向通信?这样不仅能够从客户端到服务器进行RPC,还能反过来吗?在我的项目中,我要求服务器还必须将一些数据推送到客户端,而不是在客户端要求之前执行此操作 .

2 回答

  • 2

    有两种方法可以通过Thrift实现这一目标 .

    • 如果两端都是或多或少的对等体,并且您通过套接字或管道连接它们,那么您只需在两端设置服务器和客户端,您就已经完成了很多工作 . 但是,这并不适用于所有情况,特别是对于HTTP .

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

    正如Denis所指出的,根据您的确切用例,您可能需要考虑使用MQ系统 . 请注意,仍然可以使用Thrift对队列中的消息进行序列化/序列化 . contrib folder有一些示例显示如何使用Thrift与ZMQ,Rebus和其他一些 .

  • 0

    你最好使用队列,例如ZeroMQ .

相关问题