考虑风暴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();
}
}
用LocalCluster
(即drpc.execute("exclamation", "aaa")
)测试,它工作正常。但问题是如何从PHP远程调用?
更新:我安装了slaft,并通过运行
thrift --gen php storm.thrift
&得到了一个包含一堆php类的genphp目录。有人能举一个例子或链接来展示实现吗?
我们只需要在生成的类文件之上编写一个抽象层,就像java客户端一样。
您可以通过以下方式生成drpc类文件:
thrift --gen php storm.thrift
并且您必须在代码中使用php-frift库。
我把工作代码放在下面的回购中:
https://github.com/mithunsatheesh/php-drpc