风暴使用非JVM的语言

风暴使用非JVM的语言
要点:
1,创建拓扑(官方文档说使用其他语言创建很简单,因为拓扑本身是一个节俭结构,参考stotm。节俭)
2,用其他语言实现壶嘴和螺栓,被叫做multilang组件”或“炮击”
:这里有一个指定的协议multilang协议
b:节俭结构允许你明确的定义multilang组件作为程序和脚本
c:在Java中,你覆盖ShellBolt或ShellSpolt来创建multilang组件,注意输出字段的声明发生在节俭结构,所以在Java中创建multilang组件如下所示:通过指定它在Java中声明领域,用其他语言处理代码指定ShellBolt的结构,multilang使用JSON消息在标准输入/输出与子进程进行通信,暴风雨伴随ruby、python和其他语言实现协议,展示一个python的例子:
,,锚定,python支持发射,包装,和日志记录
d:风暴外壳使得对灵气打jar包和上传更方便
,,,打jar包,上传
,,,调用程序灵气使用主机/端口,jar文件使用id号

<人力资源/>

为风暴定义一个非JVM的语言
,,,因为风暴拓扑是一个节俭结构,并且灵气是一个节俭进程,你可创建和提交拓扑用任何语言,开始学习的地方是风暴。节俭。当你为壶嘴和螺栓创建节俭结构时,spolt和螺栓指定的代码结构是:
联盟ComponentObject {
,1:二进制serialized_java;
,2:ShellComponent壳;
,3:JavaObject java_object;
}
使用非jvm的语言,你可能会使用2或3。ShellCompont让你指定脚本去运行,JavaObject让你指定java的spolt和螺栓,风暴壳命令帮你提交拓扑
风暴壳资源/python拓扑。py __arg1最长

风暴shell将打jar包,上传的jar包给灵气,命令如下:
python拓扑。py __arg1最长{nimbus-host} {nimbus-port} {uploaded-jar-location}

提交拓扑到集群上
空白submitTopology(1:字符串名称,2:字符串uploadedJarLocation, 3:字符串jsonConf, 4: StormTopology拓扑)抛出(1:AlreadyAliveException e, 2: InvalidTopologyException ite);

风暴使用非JVM的语言