如何从 PHP 调用 DRPC Storm?

Posted

技术标签:

【中文标题】如何从 PHP 调用 DRPC Storm?【英文标题】:How to call a DRPC Storm from PHP? 【发布时间】:2013-12-13 10:18:05 【问题描述】:

考虑如下的风暴 DRPC 拓扑:

public static void main(String[] args) 
    LinearDRPCTopologyBuilder builder = new LinearDRPCTopologyBuilder("exclamation");  
    builder.addBolt(new ExclamationBolt()); 
    Config conf = new Config();  
    try 
        StormSubmitter.submitTopology("exclaim", conf, builder.createRemoteTopology());
     catch (AlreadyAliveException e)  
        e.printStackTrace();
     catch (InvalidTopologyException e)  
        e.printStackTrace();
     

LocalClusterdrpc.execute("exclamation", "aaa") 测试,它可以工作。但问题是如何从 php 远程调用?


更新:我已经安装了thrift 并通过运行thrift --gen php storm.thrift 生成了PHP,并获得了一个带有一堆php 类的gen-php 目录。

谁能给出一个例子或链接来显示实现?

【问题讨论】:

【参考方案1】:

我们只需要在生成的类文件之上写一个抽象层,就像java client一样。

您可以通过以下方式生成 drpc 类文件:

thrift --gen php storm.thrift

而且你必须在你的代码中使用 php-thrift 库。

我已将工作代码放在下面的仓库中:

https://github.com/mithunsatheesh/php-drpc

【讨论】:

以上是关于如何从 PHP 调用 DRPC Storm?的主要内容,如果未能解决你的问题,请参考以下文章

Storm DRPC

Trident中的DRPC实现

Storm入门Twitter Storm: DRPC简介

Storm

风暴中的 DRPC 服务器错误

.NET Core 现已支持DRPC,同时带来Apache Thrift