1
我想弄清楚如何水平擴展我的nodejs TCP服務器。nodejs TCP服務器的水平比例
例服務器:
var socketServer = net.createServer(function (socket) {
// Identify this client
socket.name = socket.remoteAddress + ":" + socket.remotePort
// Put this new client in the list
clients.push(socket);
sockets[socket.name] = socket;
// Handle incoming messages from clients.
socket.on('data', function (data) {
// Write to a specific user
var socketName = "xx.xx.xx.xx:56512";
sockets[socketName].write("Hello!");
}
}).listen(8080);
下面的示例存儲在陣列中的各新的連接,以使我們可以寫一個消息給特定用戶在道路上。
我想用haproxy
作爲負載均衡器進行擴展。但是,我怎麼能讓我所有的服務器共享相同的連接客戶端數組?
Stickysessions不是一個適用於我的解決方案,因爲兩個人說話(兩個客戶端)可能位於不同的服務器上,所以所有服務器都必須共享相同的連接客戶端陣列。
任何想法如何做到這一點?
一個想法,我有:
- 是它也許可以存儲在MySQL的每個連接?
編輯 也許實際上這樣做的唯一方法是通過使用Redis
? 任何想法,如果這將是一個合適的選擇?負載將會非常沉重