storm进阶之drpc

What?

DRPC (Distributed RPC) – 分布式远程过程调用 DRPC 是通过一个 DRPC 服务端(DRPC server)来实现分布式 RPC 功能的。 <!-- more --> DRPC Server 负责接收 RPC 请求,并将该请求发送到 Storm中运行的 Topology, 等待接收 Topology 发送的处理结果,并将该结果返回给发送请求的客户端。 – (其实,从客户端的角度来说,DPRC 与普通的 RPC 调用并没有什么区别。) 客户端通过向 DRPC 服务器发送待执行函数的名称以及该函数的参数来获取处理结果。实现该函数的拓扑使用一个 DRPCSpout 从 DRPC 服务器中接收一个函数调用流。DRPC 服务器会为每个函数调用都标记了一个唯一的 id。随后拓扑会执 行函数来计算结果,并在拓扑的最后使用一个名为 ReturnResults 的 bolt 连接到 DRPC 服务器,根据函数调用的 id 来将函数 调用的结果返回。

DRPC设计目的

  • 为了充分利用Storm的计算能力实现高密度的并行实时计算
  • (Storm接收若干个数据流输入,数据在Topology当中运行完成,然后通过DRPC将结果进 行输出。)

案例

  • Twitter 中某个URL的受众人数统计

Why?

为了充分利用Storm的计算能力实现高密度的并行实时计算

How?

运行模式

  • 修改配置文件conf/storm.yaml

    1
    2
    drpc.servers:
    "node1“

  • 启动DRPC Server bin/storm drpc > logs/drpc.out 2>&1 &

  • 通过StormSubmitter.submitTopology提交拓扑

参考

Juforg wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!