2

我需要将收到的 thrift 数据存储在数据库中,以便稍后读取并再次由 thrift 客户端发送。如何在不从节俭生成的类中执行一些临时序列化对象的情况下将其存储为 blob。

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);

    }
}
4

1 回答 1

0

C++ 实现有一个TProtocolTap,可用于执行此操作。为其他语言编写类似的东西很容易,只需看看 C++ 代码。

它基本上允许将两个协议连接为一个。然后,第二个协议可以对数据做任何你想做的事情。

于 2013-09-12T18:54:07.337 回答