对于过去的一年,我使用nodejs开始了大约40个独立的网络应用程序(每个都使用express + socket.io运行自己的服务器和自定义端口)。真正让我烦恼的是,pm2进程列表有一个垂直滚动)))
问题是:运行这么多节点服务器是否正常或有更好的方法?
答案 0 :(得分:0)
运行多个节点服务器没有问题,事实上,当涉及微服务架构时,分解越多越好。这有很多优点和缺点,你需要弄清楚缺点是否会影响你的系统,而不是你愿意牺牲。我假设您刚开始时不知道如何遵循微服务架构,但由于您的应用程序现在已经分布在40多种服务中,因此以下文章可能会让您深入了解如何正确管理它。
https://derickbailey.com/2016/12/12/making-the-quantum-leap-from-node-js-to-microservices/
答案 1 :(得分:0)
如果您愿意,可以在一个NodeJS进程中启动几个express和socket.io实例,如下所示(基于Express Hello世界示例):
const express = require('express');
// First app
const app1 = express();
app1.get('/', function (req, res) {
res.send('Hello World!');
});
app1.listen(3000, function () {
console.log('Example app1 listening on port 3000!');
});
// Second app
const app2 = express();
app2.get('/', function (req, res) {
res.send('Hello World 2!');
});
app2.listen(3001, function () {
console.log('Example app2 listening on port 3001!');
});
但有几个方面需要考虑:
答案 2 :(得分:0)
如果它们都是独立的,那么你必须创建单独的服务器。但如果他们彼此交谈(我认为他们是通过socket.io相互交谈)那么你可以使用RPC调用。他们是像grpc(谷歌)和tchannel(优步)这样的lib。我希望他们能解决你的问题。