如何实现通用的Thrift Proxy?

时间:2016-09-21 04:54:59

标签: rpc thrift

在Apache Thrift中是否可以创建通用代理?对于例如在代理中我想做请求/响应记录或测量性能。流程应该像Client< - >通用代理< - >所有RPC调用的服务器。

1 个答案:

答案 0 :(得分:3)

实施自定义Thrift"分层"协议或自定义Thrift传输,根据需要拦截您的呼叫。

许多语言采用了使用通用multiplexed protocolTProtocolDecorator。这段代码看起来非常方便。查看implementation of TMultiplexedProtocol以了解它是如何使用的。基本上TProtocolDecorator类完成大部分魔术,你只需要覆盖一些方法并像往常一样将新开发的协议插入Thrift传输/协议栈。

或者,您可以通过添加类似于TBufferedTransport的分层传输来实现您的目标。但是在这种情况下,你没有数据背后的语义,你只看到字符串,而在协议级别,你有WriteMessageBeginReadMessageBegin这样的方法,使生活更容易。