Thrift万能インタフェース

626 ワード

本能的に、1つの機能が1つのインタフェースを書き、but、数百の機能が数百のインタフェースを書き、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クライアントとサーバ側のコードを大幅に削減することです.