如何选择socket.io和node的单个发布者?

时间:2014-09-13 13:12:14

标签: node.js mongodb socket.io kraken.js

我在我的node.js(kraken / express)网站上制作了我认为简单的页面。该页面用于从使用pm2运行的多个服务器和进程流式传输集合日志,因此我可以远程监视服务器活动。所以我已经将winston日志记录配置为使用mongo capped集合,然后通过mongoose获得一个tailable游标并发布到socket.io中。这就像单个盒子上的魅力一样,只有一个过程。但是当你用LB添加多个进程/服务器时,会发生不好的事情。首先,socket.io客户端被转移并且无法获取消息,因为进程A不知道进程B的消息。通过添加mongo作为socket.io的会话存储来解决这个问题。

但这造成了我真正的问题 - 我不能让每个进程拖尾mongo日志并发布到socket.io或者我最终会重复。但我不确定如何选择容错领导者(或者即使这是正确的方法)。我想在没有单独服务器的情况下这样做,因为我正在努力使设置尽可能简单。有什么想法吗?

这是代码: https://github.com/djMax/appsforhere

0 个答案:

没有答案