Redis 关于 node.js pub/sub 的问题

rubyonme · 2012年03月05日 · 最后由 xianlihua 回复于 2012年03月07日 · 4544 次阅读

目前要做一个  rails+mongodb+node.js 的项目,关于 node.js,有点疑问: node.js 对于 io 的访问是非阻塞的,但如果需要访问 2 个资源,如果采用嵌套,比如:

a.get("a",function(value){
  b.get("b",function(value){
    //some func
  })
})

这样只有当 a 成功返回后,b 执行 get 方法,这样的嵌套相当与阻塞了 b 的执行。 a,b 应该是同时执行,这样就需要 pub/sub 功能,

a.get("a",function(value){
  //发出事件,a执行完毕
})
 b.get("b",function(value){
  //发出事件,b执行完毕
})

目前采用的解决办法是采用 redis 的 pub/sub 功能,但是总感觉不应该依赖 redis,node.js 本身有什么好的 pub/sub 解决办法吗?

这个地方基于哪种种设计是在于说,b 的调用是否需要用到 a 的返回。 如果需要,当然没话说,第一种做法是没问题的...

如果不需要,我的想法是要么是基于 pub/sub要么还可以想办法合并资源操作(如果可以的话是最好的)。

node 做的不多,pub/sub我知道的方案也都是需要其它server依赖的....
在此就同问并 mark 一下...

@poshboytl b 的调用是不需要用 a 的返回的,但是接下来的执行需要 a,b 两个都同时成功返回。

现在遇到的情况是有些 需要 pub/sub 功能是需要跨应用的,这样采用 redis 是比较好的解决办法,有的是同在同一个应用里,觉得就不应该用 redis 了。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号