Ins*_*dJW 33 heroku rabbitmq redis node.js kue
Web Dynos可以处理HTTP请求
当Web Dynos处理它们时,Worker Dynos可以处理它的作业.
但我不知道如何让Web Dynos和Worker Dynos相互沟通.
例如,我想通过Web Dynos接收HTTP请求
,发送给工人Dynos
,处理作业并将结果发送回Web Dynos
,在Web上显示结果.
在Node.js中这可能吗?(使用RabbitMQ或Kue等)?
我在Heroku文档中找不到一个例子
或者我应该在Web Dynos中实现所有代码并仅扩展Web Dynos吗?
Rya*_*gle 38
正如关于后台作业和排队的高级文章所暗示的那样,您的Web dynos需要通过中间机制(通常是队列)与您的工作人员dynos进行通信.
要完成听起来像你希望遵循这个一般方法的事情:
就实际实现而言,我不太熟悉Node.js中最好的库,但将这个过程粘合在一起的组件在Heroku上作为附件提供.
队列:AMQP是一个受到良好支持的队列协议,CloudAMQP加载项可以作为Web和工作人员dynos之间的消息队列.
共享状态:您可以使用其中一个Postgres加载项来共享正在处理的作业的状态或更高性能的内容,例如Memcache或Redis.
因此,总而言之,您必须使用中间附加组件在Heroku上的dynos之间进行通信.虽然这种方法涉及更多的工程,但结果是一个适当解耦和可扩展的架构.
| 归档时间: |
|
| 查看次数: |
9430 次 |
| 最近记录: |