RMI はバイナリ ネットワーキング プロトコルの (速度の点での) キングですか? それとも、より高速なベンチマーク速度を持つ他のプロトコルはありますか?
Netty のようなものを使用して、より高速な独自のバイナリ (TCP) プロトコルを構築することは可能ですか? 私はネットワーキングが初めてで、利用可能なさまざまなライブラリとフレームワークに頭を悩ませようとしています。よろしくお願いします!
RMI はバイナリ ネットワーキング プロトコルの (速度の点での) キングですか? それとも、より高速なベンチマーク速度を持つ他のプロトコルはありますか?
Netty のようなものを使用して、より高速な独自のバイナリ (TCP) プロトコルを構築することは可能ですか? 私はネットワーキングが初めてで、利用可能なさまざまなライブラリとフレームワークに頭を悩ませようとしています。よろしくお願いします!
RMI はメタデータを処理する必要があり、リフレクションを使用します。TCP および DataOutputStream / DataInputStream に基づくカスタム プロトコルを実装すると、RMI よりも高速になる可能性があります。
RMI サービスがあるとします。
Service srv = (Service) Naming.lookup(lookupString);
srv.sayHi("Jack");
srv.sayBye("Back");
TCP 接続を介してコマンドとパラメーターを直接送信することもできます。
ObjectOutputStream out = ...
out.write(0); // 0 - Hi command
out.writeUTF("Jack");
out.write(1); // 1 - Bye command
out.writeUTF("Jack");
プロトコル バッファは、Java オブジェクトをシリアル化する最もコンパクトな方法の 1 つです。
必要に応じて、それを独自のトランスポート プロトコル (raw tcp ソケット、udp、http..) と組み合わせることができます。