微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 4 核机器中集群一个 MERN 应用程序

如何解决在 4 核机器中集群一个 MERN 应用程序

我正在尝试在 4 核服务器中集群一个 MERN 应用程序,但在我声明集群和 numcpu 后我卡住了。我应该如何将 MERN 应用程序集群化?非常感谢,并非常感谢任何帮助。再次感谢。

const express = require("express");
const app = express();
const morgan = require('morgan');
const bodyParser = require("body-parser");
const cors =  require("cors");
const dotenv = require('dotenv');
const connectDB = require("./dbconfig/dbconfig");
const cookieParser = require('cookie-parser');
const path = require('path');
const productRoute = require('./routes/products')
dotenv.config()
connectDB()
const cluster = require('cluster')
const numcpus = require('os').cpus().length

    const port = process.env.PORT || 5000    

    var whitelist = ['http://localhost:3000','http://localhost:5000'];
    app.use(cors({credentials: true,origin: whitelist }));    

    app.use(cookieParser())
    app.use(morgan('dev'))    

    app.use(bodyParser.json({limit: '50mb'}))
    app.use(bodyParser.urlencoded({extended:false}))

    app.use('/api',productRoute)    

    app.use(express.static(path.join("frontend","build")))    

    app.get("*",(req,res) => {
            res.sendFile(path.resolve(__dirname,"frontend","build","index.html"))
        })

    app.listen(port,() => {
        console.log(`Listening to part ${port}...`)
})

解决方法

你可以这样做。

const express = require("express");
const app = express();
const morgan = require('morgan');
const bodyParser = require("body-parser");
const cors =  require("cors");
const dotenv = require('dotenv');
const connectDB = require("./dbconfig/dbconfig");
const cookieParser = require('cookie-parser');
const path = require('path');
const productRoute = require('./routes/products')
dotenv.config()
connectDB()
const cluster = require('cluster')
const numCPUs = require('os').cpus().length;
const port = process.env.PORT || 5000   

var whitelist = ['http://localhost:3000','http://localhost:5000'];
    app.use(cors({credentials: true,origin: whitelist }));    

    app.use(cookieParser())
    app.use(morgan('dev'))    

    app.use(bodyParser.json({limit: '50mb'}))
    app.use(bodyParser.urlencoded({extended:false}))

    app.use('/api',productRoute)    

    app.use(express.static(path.join("frontend","build")))    

    app.get("*",(req,res) => {
            res.sendFile(path.resolve(__dirname,"frontend","build","index.html"))
        })

if (cluster.isMaster) {
    for (var i = 0; i < numCPUs; i++) {
        // Create a worker
        cluster.fork();
    }
} else {
    // Workers share the TCP connection in this server
    // All workers use this port
    app.listen(8080);
}

如果工作器关闭,您还可以添加错误处理。详情请查看here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。