我需要将收到的thrift数据存储在数据库中,所以我可以稍后再读它并再次通过thrift客户端发送它 . 如何存储它,即作为blob而不从thrift生成的类中执行一些临时序列化对象 .
thrift client A
- > thrift server A
- > database
- > thrift client B
- > thrift server B
解:
class LocalRpcHandler : virtual public LocalRpcIf {
public:
shared_ptr<TMemoryBuffer> memBuff;
shared_ptr<TBinaryProtocol> binProt;
....
void send(const Sample& sample) {
sample.write(binProt.get());
saveToDatabase(memBuff);
}
}
1 回答
C实现有TProtocolTap,可用于执行此操作 . 为其他语言编写类似的东西很容易,只需查看C代码即可 .
它基本上允许将两个协议连接成一个 . 然后,第二个协议可以对数据执行任何操作 .