Storm DRPC Client which supports load balancing, retry, connection pooling, etc using Finagle Thrift.
To integrate storm drpc client with finagle, finagle thrift compiler 0.5.0 (https://github.com/mariusaeriksen/thrift-0.5.0-finagle/) is used to generate storm thrift java classes.
The drpc part classes among the generated storm thrift classes reside in the pacakge 'storm.finagle.drpc.generated'.
String hosts = "storm02:3772,storm03:3772,storm04:3772";
long tcpConnectTimeout = 5000;
int tcpRetryCount = 2;
int hostConnectionLimit = 10;
StormDrpcClient stormDrpcClient = new StormDrpcClient(hosts,
tcpConnectTimeout,
tcpRetryCount,
hostConnectionLimit);
String result = stormDrpcClient.execute("electricPowerDrpc",
"11,26,27,28,29,30,31,41,42,43,44,45,46,47,48,50");
System.out.println("drpc result: [" + result + "]");