ようやくSun RPC実装コードをお披露目できるようになりました。
nio-jrpc
Java NIO based OncRpc library
http://code.google.com/p/nio-jrpc/
利用方法は2通りあります。
まず、直接使う方法。
final ProtocolFilter protocolKeeper = new ProtocolKeeperFilter();
final ProtocolFilter rpcFilter = new RpcParserProtocolFilter();
final ProtocolFilter rpcProcessor = new RpcProtocolFilter();
final ProtocolFilter rpcDispatcher = new RpcDispatcher(_programs);
final ProtocolChain protocolChain = new DefaultProtocolChain();
protocolChain.addFilter(protocolKeeper);
protocolChain.addFilter(rpcFilter);
protocolChain.addFilter(rpcProcessor);
// use GSS if configures
if (_gssSessionManager != null ) {
final ProtocolFilter gssManager = new GssProtocolFilter(_gssSessionManager);
protocolChain.addFilter(gssManager);
}
protocolChain.addFilter(rpcDispatcher);
もしくは、helperクラスを使う方法。
final int PORT = 1717;
final int PROG_NUMBER = 100017;
final int PROG_VERS = 1;
RpcDispatchable dummy = new RpcDispatchable() {
@Override
public void dispatchOncRpcCall(RpcCall call) throws OncRpcException, IOException {
call.reply(XdrVoid.XDR_VOID);
}
};
OncRpcSvc service = new OncRpcSvc(PORT);
service.register(new OncRpcProgram(PROG_NUMBER, PROG_VERS), dummy);
service.start();
このコードではI/O NFS実装を使っています。2009年9月から実運用しており、秒間12000件のリクエストを捌いています。
原文はこちら。
http://blogs.oracle.com/oleksiys/entry/grizzly_based_sun_rpc_server
0 件のコメント:
コメントを投稿