【问题标题】:How to use sticky-session with cluster in express - node js如何在 express 中使用带有集群的粘性会话 - 节点 js
【发布时间】:2014-07-22 09:16:54
【问题描述】:

我参考this question创建了一个依赖集群的应用程序

但我开始面临会话处理方面的问题。如何在带有集群的 express js 中使用粘滞会话。

我试图使用这个npm module。但这导致了同样的情况。如何解决此会话问题。

sticky(http.createServer(app).listen(app.get('port'), function () {
    console.log('Express server listening on port ' + app.get('port'));
}););

【问题讨论】:

  • 你的问题很好。粘性会话模块的维护者应该更新他们的自述文件,包括基本的 http 服务器使用示例,以及与 express 模块的集成。

标签: node.js session express


【解决方案1】:

终于找到解决方案了,试试这段代码。它保持粘性,并为其他客户端使用所有 cpus [进程]。您可以使用以下代码使用快速集群粘性会话。你可以在这里https://github.com/indutny/sticky-session 获得sticky-session

var http = require('http');
var cluster = require('cluster'); // Only required if you want the worker id
var sticky = require('sticky-session');
var express = require('express');
var app = express();

app.get('/', function (req, res) {
    console.log('worker: ' + cluster.worker.id);
    res.send('Hello World!');
});


var server = http.createServer(app);
    sticky.listen(server,3000);

【讨论】:

    【解决方案2】:

    跟快递没关系。

    你只是忘记了粘滞函数的listen()。

    sticky(
      http.createServer(app).listen(app.get('port'), function () {
          console.log('Express server listening on port ' + app.get('port'));
      });
    ).listen(app.get('port'),function() {
      console.log('Sticky server started on port' + app.get('port'));
    });
    

    【讨论】:

    猜你喜欢
    • 2018-12-20
    • 1970-01-01
    • 1970-01-01
    • 2020-04-03
    • 2014-12-19
    • 2013-10-26
    • 2017-11-29
    • 2015-05-04
    • 1970-01-01
    相关资源
    最近更新 更多