storm 远程过程调用及客户端调用
来源:互联网 发布:ib网络是什么意思啊 编辑:程序博客网 时间:2024/06/06 06:30
server端:
import java.util.Map;
import org.apache.thrift7.TException;
import backtype.storm.Config;
import backtype.storm.ILocalDRPC;
import backtype.storm.LocalCluster;
import backtype.storm.LocalDRPC;
import backtype.storm.StormSubmitter;
import backtype.storm.drpc.DRPCSpout;
import backtype.storm.drpc.LinearDRPCTopologyBuilder;
import backtype.storm.generated.DRPCExecutionException;
import backtype.storm.task.OutputCollector;
import backtype.storm.task.TopologyContext;
import backtype.storm.topology.OutputFieldsDeclarer;
import backtype.storm.topology.base.BaseRichBolt;
import backtype.storm.tuple.Fields;
import backtype.storm.tuple.Tuple;
import backtype.storm.tuple.Values;
public class RemoteDRCPTopology {
public static class drcpBolt extends BaseRichBolt {
private Map stormConf;
private TopologyContext context;
private OutputCollector collector;
public void prepare(Map stormConf, TopologyContext context,
OutputCollector collector) {
this.stormConf = stormConf;
this.context = context;
this.collector = collector;
}
/**
* 第一个 :函数名 第二个 :参数
*/
public void execute(Tuple input) {
String value = input.getString(1);
value = "hello" + value;
this.collector.emit(new Values(input.getValue(0), value));
}
public void declareOutputFields(OutputFieldsDeclarer declarer) {
declarer.declare(new Fields("name", "value"));
}
}
public static void main(String[] args) throws Exception, TException {
LinearDRPCTopologyBuilder topologyBuilder = new LinearDRPCTopologyBuilder(
"aaa");
topologyBuilder.addBolt(new drcpBolt());
Map stormConf;
StormSubmitter.submitTopology(RemoteDRCPTopology.class.getSimpleName(),
new Config(), topologyBuilder.createRemoteTopology());
}
}
客户端:
import backtype.storm.utils.DRPCClient;
public class ClientRemoteDRPC {
public static void main(String[] args) throws Exception{
DRPCClient drpcClient = new DRPCClient("192.168.80.20", 3772);
String res = drpcClient.execute("aaa", "哈哈哈444我被远程调用了");
System.out.println(res);
}
}
结果输出为:
hello哈哈哈444我被远程调用了
- storm 远程过程调用及客户端调用
- storm drpc远程调用
- Storm Distributed RPC(DRPC)分布式远程过程调用
- RemObjects(一)客户端远程调用服务端接口过程
- RemObjects(一)客户端远程调用服务端接口过程
- 远程过程调用失败
- ONC远程过程调用
- 远程调用存储过程
- 远程调用存储过程
- 远程过程调用(RPC)
- Rpc远程过程调用
- RPC远程过程调用
- RMI远程调用过程
- 远程过程调用RPC
- RPC远程过程调用
- RPC 远程过程调用
- RPC远程过程调用
- 远程过程调用(RPC)
- C#中OpenFileDialog获取文件名和文件路径的常用方法
- 运维规范:禁止使用hostname命令去查看主机名
- Cookie与Session
- 【CF 453A】 Little Pony and Expected Maximum (最大期望)
- case用法
- storm 远程过程调用及客户端调用
- 关于javaSE面向对象的一些小知识
- 从Eclipse转移到IntelliJ IDEA一点心得
- 黑马程序员——内部类,异常,Object类
- Python编程学习——生成器
- elasticsearch的研究与使用(二)Search API
- 彻底卸载MYSQL
- Linux中profile、bashrc、bash_profile之间的区别和联系
- Ubuntu 软件安装方法之——简单介绍