我参与了一个聊天开发项目,我们正在使用 node.js、socket.io(房间)和 mongodb。我们正处于性能测试阶段,我们非常关心系统是否需要负载平衡。
如果我们的项目需要,我们该如何开发? J'a 研究 NGINX 看起来很酷,但我们怀疑是否能解决我们的问题,因为系统将如何聊天,我们担心服务器之间没有正确地进行对话......
如果我们需要负载平衡,我们该去哪里?
最佳答案
为了确保我们可以扩展到多个 Node 但保持不同客户端和不同服务器之间的互连,我使用了 redis。它的使用和设置实际上非常简单。
这样做是在您的服务器之间创建一个发布/订阅系统,以跟踪您的不同套接字客户端。
var io = require('socket.io')(3000),
redis = require('redis'),
redisAdapter = require('socket.io-redis'),
port = 6379,
host = '127.0.0.1',
pub = redis.createClient(port, host),
sub = redis.createClient(port, host, {detect_buffers: true}),
server = http(),
socketServer = io(server, {adapter: redisAdapter({pubClient: pub, subClient: sub})});
在此处阅读更多信息:socket.io-redis
就处理不同的 Node 服务器而言,有不同的方法。
其中...
https://stackoverflow.com/questions/28390429/
相关文章:
mongodb - Spark 流 : foreachRDD update my mongo RDD
mongodb - MongoDB批量FindAndModify的解决方案
javascript - Mongoose 连接到 MongoDB Atlas 的最佳池大小是多少?
node.js - 将数据插入 MongoDB - 没有错误,没有插入
javascript - 在 MongoDB 中按字母顺序对文档进行排序(也称为自然排序顺序,人类排
mongodb - 当父字段未知时,在嵌套文档中查找具有字段的记录
performance - 字段类型在 MongoDB 索引中是否重要?
javascript - MongoError : cannot change _id of a d