如何构build一个消息总线与Node.js和API分布在几个听众?
这是我想要发生的事情:
我的用户会打到一个端点,比如/api/findFile/app.js
。 express
正在监听这个调用(标准的RESTtypes的东西),并会联系几个工作人员(可以是任意数量)要求他们执行工作,具体查找文件。 当第一个这样做的时候,它应该回应express
的function,以便将结果发回给用户。
我想像某种消息总线/ AMQP设置将需要。 我认为快递function可以向工作人员publish
请求,每个人都subscribe
这个事件:
bus.publish('findFile', {fileName: 'app.js'}};
沿着这些线的东西。 工人有:
bus.subscribe('findFile', function(event) {....
每个工人将检查它是否有硬盘上的文件。 该文件可以在MULTIPLE工作盘上。 所以当第一个find它的时候,我想以某种方式中止别人回来expression。
为了回到expression,我想我们会做一个反向的pub/sub
订阅,这次是明确地听取回应?
任何想法如何正确地devise这个? 特别是与比赛条件。
你可以使用socket.io 。 它是一个事件驱动的客户端 – 服务器pub-sub框架,可以很好地与express
。