我最近从apache storm开始,刚刚完成了我的第一个拓扑(都是用java构建的)。
下一步,我想把ti sensortag的传感器值放在其中一个拓扑中,tisensortag连接到一个树莓pi。
我可以通过http发送传感器数据,但我不确定如何实现一个工作喷口,它接收这些请求。
拓扑的思想:它应该接收带有传感器值信息的http请求,将这些数据发送到拓扑中,然后使用bolt将它们写入文件/数据库。
到目前为止,我在stackoverflow上发现了一篇关于http喷口(Storm : Spout for reading data from a port)的文章,但遗憾的是,我没有被允许留下评论或写任何私人消息(如果我遗漏了这方面的内容,很抱歉)。
我不确定这个喷口是如何工作的,我想问一个示例代码(基本上我想知道整个东西是如何在拓扑结构中设置的)。
此外,我还尝试使用Storm(http://storm.apache.org/releases/1.0.0/Distributed-RPC.html)的drpc功能将我的http请求放入拓扑结构中,但到目前为止,我还无法进一步查看文档和Storm Starter示例,因为我仍在学习如何正确使用Storm。对于设置drpc服务器以及如何配置传入请求的侦听,我真的很困惑。
所以我想知道,如果有人也面临这个问题,并找到了解决办法或可以给我建议,我还能尝试什么。
就我所见,这样一个http会喷口吗?!)还是drpc服务器工作?
附言:还有一个代码模板,其他的例子或任何其他的信息来源,这可能有助于了解这个主题将是很好的!
最佳答案
相反,我将编写一个servlet来使用这些http请求,并在收到请求时将相关信息写入kafka。然后,您可以使用kafka喷口(我会编写自己的喷口,但这是一个完全不同的问题)来读取数据并将其发送到您的拓扑中。使用kafka作为中间转移位置的主要好处是能够通过重置提交的kafka偏移量来重播数据。
关于java - 如何在Java中为Apache Storm实现HTTP Spout?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40802890/