2

受信したthriftデータをデータベースに保存する必要があるため、後で読み取って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++ コードを見てください。

基本的に、2 つのプロトコルを 1 つに接続できます。2 番目のプロトコルは、データに対して必要なことを何でも行うことができます。

于 2013-09-12T18:54:07.337 に答える