博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
storm 远程过程调用及client调用
阅读量:5114 次
发布时间:2019-06-13

本文共 2035 字,大约阅读时间需要 6 分钟。

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());
}
}

client:

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我被远程调用了

转载于:https://www.cnblogs.com/jzdwajue/p/7215783.html

你可能感兴趣的文章
深入理解pthread_cond_wait、pthread_cond_signal
查看>>
2017 让机器给我们干活
查看>>
django(权限、认证)系统——用户Login,Logout
查看>>
前端的常见的面试试题
查看>>
模版方法模式
查看>>
Python学习——复习5次课(12月2日)
查看>>
[其他]Ubuntu安装genymotion后unable to load VirtualBox engine
查看>>
微信小程序遇到的那些坑
查看>>
水瓶座的回顾-高贵的程序员
查看>>
整理自己的.net工具库
查看>>
java 学习第三篇if判断
查看>>
WPF INotifyPropertyChanged 通过特性减少代码量
查看>>
学习笔记41—ttest误区
查看>>
网络协议IPV6基础知识点集锦
查看>>
远程数据管理端开关
查看>>
hdu 1561 The more, The Better (依赖背包 树形dp)
查看>>
nginx和tomcat实现反向代理、负载均衡和session共享
查看>>
编程算法 - 最小的k个数 红黑树 代码(C++)
查看>>
关于CoreData的使用
查看>>
MyISAM与InnoDB的区别是什么?
查看>>