Thrift万能インタフェース
626 ワード
本能的に、1つの機能が1つのインタフェースを書き、but、数百の機能が数百のインタフェースを書き、thriftインタフェースファイルを書き、クライアントを書き、サーバ側を書く......考えてみれば怖い.その後サボって、万能インタフェースは以下の通りです.
ここで、serviceIdは、ユーザーの作成やパスワードの変更など、どの特定のインタフェースかを区別するために使用されます.
paramは、POJOが変換したJSON文字列であり、クライアントでシーケンス化し、サーバ側で逆シーケンス化する.
RpcResponseに含まれるresultは、POJO変換されたJSON文字列であり、optionalであるためnullとすることができる.resultはクライアントでシーケンス化し,サーバ側で逆シーケンス化する.
JSONシーケンス化と逆シーケンス化によるパフォーマンスへの悪影響は、ほとんどの場合無視できます.
メリットは、thriftクライアントとサーバ側のコードを大幅に削減することです.
struct RpcResponse {
1: optional string result;
}
service RpcService {
RpcResponse call(1: string serviceId, 2: string param);
}
ここで、serviceIdは、ユーザーの作成やパスワードの変更など、どの特定のインタフェースかを区別するために使用されます.
paramは、POJOが変換したJSON文字列であり、クライアントでシーケンス化し、サーバ側で逆シーケンス化する.
RpcResponseに含まれるresultは、POJO変換されたJSON文字列であり、optionalであるためnullとすることができる.resultはクライアントでシーケンス化し,サーバ側で逆シーケンス化する.
JSONシーケンス化と逆シーケンス化によるパフォーマンスへの悪影響は、ほとんどの場合無視できます.
メリットは、thriftクライアントとサーバ側のコードを大幅に削減することです.