Storm高级原语(二) -- DRPC详解
Storm里面引入DRPC主要是 利用 storm 的实时计算能力来并行化CPU 密集型(CPU intensive )的计算任务 。DRPC的stormtopology以函数的参数流作为输入,而把这些函数调用的返回值作为topology的输出流。 DRPC其实不能算是storm本身的一个特性, 它是通过组合storm的原语stream、spout、bolt、 topology而成的一种模式(pattern)。本来应该把DRPC单独打成一个包的, 但是DRPC实在是太有用了,所以我们我们把它和storm捆绑在一起。 概览 Distributed RPC是由一个” DPRC 服务器 ”协调(storm自带了一个实现)。 DRPC 服务器协调:① 接收一个RPC 请求 ② 发送请求到storm topology ③ 从storm topology 接收结果 ④ 把结果发回给等待的客户端 。从客户端的角度来看一个DRPC调用跟一个普通的RPC调用没有任何区别。比如下面是客户端如何调用RPC计算“reach”功能(function)的结果,reach方法的参数是: http://twitter.com 。 DRPCClient client = new DRPCClient("drpc-host", 3772); String result = client.execute("reach"