Storm 从入门到精通 第十九讲 Storm DRPC 简介及设计思想

本文介绍了DRPC在Storm中的工作原理及编程思想。DRPC利用Storm的实时计算能力进行并行化的CPU密集型计算任务。文章详细描述了DRPC服务器如何接收、处理RPC请求并将结果返回给客户端的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


1. DRPC 简介

分布式RPC( distributed RPC,DRPC)

Storm里面引入DRPC主要是利用 Storm的实时计算能力来并行化CPU密集型( CPU Intensive)的计算任务。
DRPC的 Storm Topology以函数的参数流作为输入,而把这些函数调用的返回值作为 Topology的输出流。

DRPC其实不能算是Storm本身的一个特性,它是通过组合Storm的Stream、 Spout、Bolt、 Topology而成的一种模式( pattern)。

本来应该把DRPC单独打成一个包的,但是DRPC实在是太有用了,所以我们把它和Storm捆绑在一起。

2. DRPC 编程思想

DRPC服务器协调

1) 接收一个RPC请求。
2) 发送请求到Storm Topology
3) 从Storm Topology接收结果。
4) 把结果发回给等待的客户端。

从客户端的角度来看一个DRPC调用跟一个普通的RPC调用没有任何区别。

比如下面是客户端如何调用 RPC: reach方法的,方法的参数是: http://twitter.com
 
DRPCClient client = new DRPCClient("drpc-host", 3772);
String result = client.execute("reach", "http://twitter.com");
DRPC的工作流大致是这样的:




客户端给DRPC服务器发送要执行的方法的名字,以及这个方法的参数。实现了这个函数的Topology使用 DRPC Spout 从DRPC服务器接收函数调用流。
每个函数调用被DRPC服务器标记了一个唯一的id, 这个Topology然后计算结果,在Topology的最后一个叫做 ReturnResults 的Bolt会连接到DRPC服务器,并且把这个调用的结果发送给DRPC服务器(通过那个唯一的id标识)。
DRPC服务器用那个唯一id来跟等待的客户端匹配上,唤醒这个客户端并且把结果发送给它。

LinearDRPCTopologyBuilder

Storm自带了一个称作 LinearDRPCTopologyBuilder 的topology builder, 它把实现DRPC的几乎所有步骤都自动化了。
这些步骤包括:
1. 设置spout
2. 把结果返回给DRPC服务器
3. 给bolt提供有限聚合几组Tuples的能力

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值