在上一篇文章里介绍了.Net版本的DRPC的类库,结尾处的例子使用了Java版 BasicDRPCTopology ,本文我将介绍如何使用C#来开发 Storm Topology 并供远程DRPC调用,这篇文章将作为.Net Storm系列文章的一个暂时的结束,新的文章将随着 storm-net-adapter 新特性来更新!
在开始介绍具体代码之前,我们先回顾一下DRPC的数据流图:
从图中可以看到,DRPC实际上并不会影响的具体的业务逻辑代码的编写,只是在传入参数中增加了一个 request-id 用于辨别任务,在结束时增加了一个 return-info 用来返回结果。那么,在Bolt的编写中,我们为每一个Bolt的输入输出增加一个 id 参数来标识任务,在结束时额外增加一个返回结果的参数。我们还是写一个简单的字符操作的例子。
1 | using Storm; |
以上代码需要引用storm-net-adapter,详细信息可以查看我之前的文章,下面我们来使用Java定义这个DRPC Topology:
1 | /** |
相关代码已经集成到storm-starter中,部署并启动该Topology,然后使用C#或其它语言调用:
1 | DRPCClient client = new DRPCClient("localhost", 3772); |
下面是一些其它语言DRPC项目的搜集:
- C#/.Net Storm.Net.Apapter https://github.com/ziyunhx/storm-net-adapter
- Java Storm 官方包 http://storm.apache.org/
- Python storm-drpc-client https://pypi.python.org/pypi/storm-drpc-client
- Php php-drpc https://github.com/mithunsatheesh/php-drpc
本文来自 The NewIdea,作者 Carey Tzou 。
永久地址:https://www.tnidea.com/call-dot-net-drpc-program.html
未经授权,拒绝任何全文及摘要转载!