- 介绍
- Ack 框架的实现
- 使用 Maven 构建 Storm 应用
- Clojure DSL
- 命令行操作
- Storm 常用模式
- 基础概念
- 配置
- 创建 Storm 新项目
- 定义 Storm 的非 JVM 语言 DSL
- 分布式 RPC
- FAQ 常见问题
- 容错性
- 消息的可靠性保障
- Hooks
- 本地模式
- Metrics
- 多语言接口协议
- 在生产环境中运行拓扑
- 序列化
- 配置开发环境
- Storm 集群安装配置
- Storm 与 Kestrel
- Storm 内部技术实现
- 源码组织结构
- Trident API 概述
- Trident Spouts
- Trident State
- Trident 教程
- 问题与解决
- 教程
- 理解 Storm 拓扑的并行度(parallelism)概念
- 使用非 JVM 语言开发
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
使用非 JVM 语言开发
- 两个部分:创建拓扑,以及使用其他语言实现 spouts 与 bolts
- 由于 Storm 的拓扑都是基于 thrift 结构的,所以使用其他语言创建拓扑也是一件很容易的事情
- 使用其他语言实现的 spouts 与 bolts 称为“多语言组件”(multilang components)或者“脱壳”(shelling)
- 这是具体的实现协议:多语言接口协议
- thrift 结构允许你定义以一个程序和脚本的方式定义多语言组件(例如,可以使用 python 程序和文件实现 bolt)
- 在 Java 中,需要覆写 ShellBolt 或者 ShellSpout 来创建多语言组件
- 注意,输出域是在 thrift 结构中声明的,所以在 Java 中你需要这样创建多语言组件:
- 在 Java 中声明域,并通过在 shellbolt 的构造器中指定输出域来处理其他语言的代码
- 注意,输出域是在 thrift 结构中声明的,所以在 Java 中你需要这样创建多语言组件:
- 多语言组件在 STDIN/STDOUT 中使用 JSON 消息来和子进程通信
- 已经实现了 Ruby,Python 等语言的相关协议,例如,python 支持 emit、anchor、ack 与 log等操作
- “storm shell” 命令简化了构造 jar 包与向 nimbus 上传文件的过程
- 构建 jar 文件并将其上传
- 使用 nimbus 的 host/port 以及 jar 文件的 id 来调用你的程序
以非 JVM 语言实现 DSL 的相关说明
译者注:由于本文部分内容与另一篇文档定义 Storm 的非 JVM 语言 DSL重复,这里不再罗列,详情请参阅该文档。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论