drpc的工作原理

storm初级教程 008 DRPC 详解_rpc

DRPC由storm构成服务端,DRPCClient构成客户端;reach是storm的一个拓扑定义的函数名称 ,(推特url)是请求参数

storm初级教程 008 DRPC 详解_服务端_02

而linearDRPCTopologyBuilder实现了DRPC的封装,构造函数参数也就是客户端需要传入的函数名;【同时也是自定义拓扑时候DRPCSpout的函数名称,drpcSpout从客户端指定的函数接收输入流】

storm初级教程 008 DRPC 详解_storm远程调用_03

 

 

举例子:

首先创建拓扑结构

storm初级教程 008 DRPC 详解_storm_04

创建如上的拓扑 :drpc调用这个拓扑时候,最后的bolt会把结果返回给drpc服务端

这个拓扑的结构有且只能是线性结构

2 其次运行拓扑结构并且客户端调用

 

本地调用

storm初级教程 008 DRPC 详解_storm_05

 

远程调用:

 

远程调用涉及到了storm中的拓扑 ,drpc服务端,drpc客户端

所以首先配置storm.yaml的drpc服务端地址,其次启动该服务端,最后提交拓扑到storm集群

然后就可以使用DRPCClient调用:需要注意的是,client需要指定的是函数名而不是拓扑名称

storm初级教程 008 DRPC 详解_rpc_06

storm初级教程 008 DRPC 详解_drpc_07

storm初级教程 008 DRPC 详解_服务端_08

 

 

 

 

线性结构如下

storm初级教程 008 DRPC 详解_服务端_09