使用php在storm中进行非阻塞http调用

bkhjykvo  于 2021-06-26  发布在  Storm
关注(0)|答案(1)|浏览(373)

我正在评估使用storm(实时框架,而不是ide)构建webcrawler。我的喷口将提供一个uri流,必须在用php编写的第一个bolt中调用和检索uri。
在node.js的背景下,我知道可以使用回调以非阻塞的方式构建这样的功能。我天真的想法是,只需为该bolt配置大量任务,这样就可以在一些tak等待答案时充分利用资源。问题是,php臭名昭著地为每个进程分配大量资源,我不知道storm如何在内部管理这些资源,以及这是否是个好主意。
在这种环境中是否可能出现类似node.js的行为?或者我必须切换到另一种语言才能实现它(如果是,我该怎么做)?

vwkv1x7d

vwkv1x7d1#

我编写了一个web爬虫,它使用storm&非阻塞http调用,尽管是用java实现的。我们一直在生产中使用它,效果很好。
我们有一个从喷口进来的URL流,它被发送到爬虫螺栓。每个bolt都将发出非阻塞的http请求,在此请求上我注册一个回调,该回调将向输出收集器发出结果。i、 是的,你可以用storm做非阻塞io。
我对php开发不熟悉,所以我不能对此作太多评论,但不管您做什么,由于进程间消息传递,它的性能可能会比基于jvm的语言差。
注意:在storm的最新版本中,输出采集器不再是线程安全的,所以当您异步发出内容时,请确保在它们上进行同步。

相关问题