微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

web-crawler – 使用php在Storm中进行非阻塞HTTP调用

我正在评估使用Storm构建一个webcrawler(实时框架,而不是IDE).我的spout将提供一个URI流,必须在第一个Bolt中调用和检索,这是用 PHP编写的.

来自node.js背景,我知道可以使用回调以非阻塞方式构建这样的功能.我天真的想法是,只为该Bolt配置很多任务,以便在一些Taks等待答案时可以充分利用资源.问题是,PHP为每个进程分配了大量资源是臭名昭着的,我不知道Storm是如何在内部管理的,如果这是一个好主意.

在这种环境中,类似node.js的行为是否可行?或者我必须切换到另一种语言来实现它(如果是这样,我该怎么做)?

解决方法

我写了一个使用Storm& amp;非阻塞HTTP调用,尽管是在Java中.我们一直在生产中使用它,它的效果非常好.

我们有一个一个喷口进来的URL流,它被发送到履带式螺栓.每个螺栓都会产生非阻塞的HTTP请求,我会在其上注册一个回调函数,该回调函数会将结果发送给输出收集器.即是的,你可以使用Storm进行非阻塞IO.

我不熟悉PHP开发,所以我不能对此发表评论,但无论你做什么,由于进程间消息传递,它与基于JVM的语言相比可能表现得相当差.

注意:在最新版本的Storm中,输出收集器不再是线程安全的,因此请确保在它们上同步时异步发送内容.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐