Node.js 使用nodejs DNS负载平衡时发生EAGAIN错误+;socket.io+;socket.io-redis。我怎样才能解决这个问题?
服务器定期打开文本文件以添加或更改内容。 一台服务器没有问题,但在负载平衡并使用redis连接服务器和两台服务器以共享文件夹后,会发生EAGAIN错误 从服务器1连接多个客户端并引用同一个文本文件和更改内容没有问题。当服务器1的客户端和服务器2的客户端引用同一文本文件时,这是一个不规则错误。 我怎样才能解决这个问题 ++我们发现了问题。 与nfs共享文件夹时,如果共享文件夹的根目录是服务器1,则服务器1上会出现错误 相反,如果共享文件夹的根目录是服务器2,则服务器2上会发生错误EAGAIN。 如果在另一台服务器上设置共享文件夹进行测试,并将服务器1和服务器2连接到另一台服务器上的共享文件夹,则不会出现错误。为什么? 服务器配置Node.js 使用nodejs DNS负载平衡时发生EAGAIN错误+;socket.io+;socket.io-redis。我怎样才能解决这个问题?,node.js,socket.io,load-balancing,Node.js,Socket.io,Load Balancing,服务器定期打开文本文件以添加或更改内容。 一台服务器没有问题,但在负载平衡并使用redis连接服务器和两台服务器以共享文件夹后,会发生EAGAIN错误 从服务器1连接多个客户端并引用同一个文本文件和更改内容没有问题。当服务器1的客户端和服务器2的客户端引用同一文本文件时,这是一个不规则错误。 我怎样才能解决这个问题 ++我们发现了问题。 与nfs共享文件夹时,如果共享文件夹的根目录是服务器1,则服务器1上会出现错误 相反,如果共享文件夹的根目录是服务器2,则服务器2上会发生错误EAGAIN。 如
DNS load balancing
nodejs(socket.io,socket.io-redis) SERVER 1, 2
redis
npm模块版本:
express@4.13.4
socket.io@1.5.0
socket.io-redis@1.1.1
socket.io-adapter@0.5.0
fs@0.0.1
multer@0.1.8
js文件:
var express = require('express');
var multer = require('multer');
var app = express();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var mysql = require('mysql');
var fs = require('fs');
var request = require("request");
var fcm = new FCM(apiKey);
var redis = require('socket.io-redis');
io.adapter(redis({host:'xxxxxxxxxxxx',port:xxxx}));
http.listen(port, function(){
console.log('listening1 on *:'+port);
});
io.sockets.on('connection', function(socket){
socket.on('setchat', function(data){
var obj=JSON.parse(data);
var txtfile = fs.readFileSync('./room/'+obj.roomid+".txt", 'utf8');
...
...
...
...
});
socket.on('getcount', function(data){
var txtfile = fs.readFileSync('./room/'+data+".txt", 'utf8');
var chatRoom=JSON.parse(txtfile);
var strChatroom = JSON.stringify(chatRoom);
fs.open('./room/'+data+".txt", 'w', function(err, fd) {
if(err) throw err;
var buf = new Buffer(strChatroom);
fs.write(fd, buf, 0, buf.length, null, function(err, written, buffer) {
if(err) throw err;
fs.close(fd, function() {
console.log('getcount Done');
});
});
});
});
});
错误代码:
Error: EAGAIN: resource temporarily unavailable, open './room/chattingtext.txt
at Error (native)
chattingtext.txt:
{"totalmember":{"id":"name","id":"name"},"nowmember":["name"],"msginfo":[{"index":1,"user":"name","message":"asdasd","count":0,"date":"13:45"}]}
plz帮助…:(