当前位置: 首页 > 知识库问答 >
问题:

如何在Java中实现Apache Storm的HTTP Spout?

百里修真
2023-03-14

我最近开始使用Apache Storm,刚刚完成了我的第一个拓扑结构的构建(全部用java)。

作为下一步,我想将连接到树莓派的 TI 传感器标签中的传感器值放在这些拓扑中。

我可以通过HTTP发送传感器数据,但我不确定如何实现接收这些请求的工作spout。

拓扑的想法:它应该接收带有传感器值信息的HTTP请求,将这些数据发送到拓扑中,然后使用螺栓将它们写入文件/数据库。

到目前为止,我在Stackoverflow上找到了一个关于HTTP-Spout (Storm : Spout,用于从端口读取数据)的帖子,但遗憾的是,我不允许发表评论或写任何私人消息(如果我错过了一些内容,很抱歉)。我不知道这个喷口是如何工作的,想问一个例子-代码。(基本上,我想知道整个事情是如何在拓扑中设置的)。

我还尝试使用storm的DRPC功能(http://Storm . Apache . org/releases/1 . 0 . 0/Distributed-RPC . html)将我的HTTP请求放入拓扑中,但是到目前为止,我还不能进一步浏览文档和storm-starter示例,因为我还在学习如何正确使用Storm。我对设置drpc-server以及如何配置对传入请求的监听感到非常困惑。

所以我想知道,如果有人也面临这个问题,并找到了解决方案或可以给我建议,我还可以尝试什么。

这样的HTTP输出(据我所知,是一个套接字连接吗?!)还是DRPC服务器工作?

还有一个代码模板、其他示例或任何其他信息来源,这对理解该主题很有帮助!

共有2个答案

谢选
2023-03-14

Storm-sport通常从数据源中提取数据,所以您所谈论的并不常见。这就是为什么Chris提到使用像Kafka这样的排队产品作为Storm和Pi之间的缓冲区。

也许有可能在Storm喷嘴内做你所说的。问题是当你开始从一台机器扩展到多台机器时,因为你的Pi不知道Storm工作线程在哪些节点上运行,因此不知道HTTP服务器在哪里侦听。

我建议从简单的开始。这是我写的一个简单的WordCount拓扑,你可以在机器上本地运行:Storm-stlhug-demo。

要开始,至少在Storm之外运行服务器:

  1. Pi将HTTP发布到HTTP服务器
  2. HTTP服务器将有效负载写入数据目录中的文件
  3. Storm Spout轮询数据目录并处理文件
薛烨
2023-03-14

相反,我会编写一个 servlet 来使用这些 HTTP 请求,并在收到请求时将相关信息写入 Kafka。然后,您可以使用 Kafka 喷嘴(我会编写自己的喷嘴,但这是一个完全不同的问题)来读取该数据并将其发送到您的拓扑中。使用 Kafka 作为中间暂存位置的主要好处是能够通过重置已提交的 Kafka 偏移量来重播数据。

 类似资料:
  • 我一直在努力尝试让Bouncy Castle Scrypt进入我的web应用程序进行密码加密。我对Java编程和安全性相当陌生。 我试着查看了Bouncy Castle的Scrypt类文档。然而,我真的很难弄清楚它是如何工作的。它似乎并没有真正给出如何创建类或诸如此类的信息。 我在Stack Exchange和Google上搜索了一下,看看是否有什么地方可以给出一个很好的示例,说明我应该做什么来创

  • 我的Kotlin项目需要一个Java注释。 不幸的是,这似乎很困难。我在这里找到了这种讨论: https://discuss.kotlinlang.org/t/intdef-and-stringdef-not-being-checked-at-compile-time/7029/3 我明白这可能是一个Lint问题。不执行编译时检查。两人都没有提出任何建议。我可以添加任何字符串作为参数。 我最终用我

  • 问题内容: 数组在Java中被实现为对象,对吗?如果是这样,我可以在哪里查看数组类的源代码。我想知道数组中的length变量是否定义为常量,如果是这样,为什么不是全部使用大写字母LENGTH来使代码更易于理解。 问题答案: 尽管从它们继承java.lang.Object的角度来看,数组是Object,但是这些类是作为语言的特殊功能动态创建的。它们未在源代码中定义。 考虑以下数组: 没有这样的源代码

  • 问题内容: 我是jfreechart的新手。我想显示一个基于数据库表中值的图表。表为dns_time,文件名为dns_lookup_time,update_time。我想在x轴上使用update_time,在y轴上使用dns_lookup_time,并且应该根据数据库中的值显示曲线。我使用的是hibernate和postgresql,谁能帮助我实现这一目标,谢谢。 问题答案: 您可能会看一下,它可

  • 问题内容: 我有这个UML协会类。注意:水平线是实线,垂直线是虚线。 我了解这种关系,但是在实现此UML进行编码时遇到了一些问题。我可以实现类与类之间的关系以进行编码。这是我的代码: 但是,在课堂上,我对如何在代码中使用此类不太了解。是阶级和阶级的财产吗?因此,如果是这样,那么代码将是: 是真的吗 如果这是错误的,请教我如何实现此UML。 谢谢 :) 问题答案: 首先,不要使用Vector,因为它

  • 问题内容: 我实际上正在从事一个网站项目。我是Web服务的新手。我在面向对象的编程(java,c#,…)方面有4年的经验。我已经阅读了很多有关Web服务的文章,但是我的文档都没有告诉您如何使用所有技术来制作一个真正的Web服务项目。 我要做的是:1.使用Java映射到JPA的MySQL后端;2.使用Web服务来提供…的某些功能(JBoss,…有很多可能性,我不知道应该选择哪种方式)3.创建一个动态