Service Fabric node.js 来宾应用程序 express.js 服务器 EADDRINUSE
Service Fabric node.js guest application express.js server EADDRINUSE
不确定这是服务结构问题,还是 node.js 的问题。
基本上this是我的问题。我部署了 node.js 应用程序,它工作正常。我重新部署了它无法工作的节点应用程序,服务器返回 EADDRINUSE
。当我 运行 netstat -an
端口未被使用时。就好像节点还在某个地方 运行ning 一样,但没有出现在任务列表等中。
有人有什么想法吗?
不完全确定,但我相信这是因为我使用的服务器 (express.js),或者更确切地说是节点,没有关闭并关闭现有连接导致 windows 认为端口仍在使用中。至少,看起来是这样。
我找不到它 "officially" 的记录,但是从 this(下面引用)它读取 SF 向应用程序发送 SIGINT 以尝试在杀死它之前结束它。
以下代码似乎可以解决我的问题:
var app = express();
var server = app.listen(17500);
if (process.platform === "win32") {
var rl = require("readline").createInterface({
input: process.stdin,
output: process.stdout
});
rl.on("SIGINT", function () {
process.emit("SIGINT");
}
}
process.on("SIGINT", function() {
server.close(function () {
process.exit(0);
});
});
对于 Linux 个节点,我想您也想收听 "SIGTERM"。
我想知道是否对此有任何补救措施,在前面提到的场景中,VMSS 完全无法使用——我无法部署,也无法 运行 节点 Web 服务器。如何在不破坏并重新创建集群的情况下重启集群?我现在意识到你不能只重启 VMSS 实例 willy-nilly 因为如果你这样做,服务结构会完全中断,显然是不可撤销的
Rajeet Nair [RajeetN@MSFT]
Service Fabric also sends a Ctrl-C to service processes and waits for service to terminate. If the service doesn't terminate for 3 minutes, the process is killed.
不确定这是服务结构问题,还是 node.js 的问题。
基本上this是我的问题。我部署了 node.js 应用程序,它工作正常。我重新部署了它无法工作的节点应用程序,服务器返回 EADDRINUSE
。当我 运行 netstat -an
端口未被使用时。就好像节点还在某个地方 运行ning 一样,但没有出现在任务列表等中。
有人有什么想法吗?
不完全确定,但我相信这是因为我使用的服务器 (express.js),或者更确切地说是节点,没有关闭并关闭现有连接导致 windows 认为端口仍在使用中。至少,看起来是这样。
我找不到它 "officially" 的记录,但是从 this(下面引用)它读取 SF 向应用程序发送 SIGINT 以尝试在杀死它之前结束它。
以下代码似乎可以解决我的问题:
var app = express();
var server = app.listen(17500);
if (process.platform === "win32") {
var rl = require("readline").createInterface({
input: process.stdin,
output: process.stdout
});
rl.on("SIGINT", function () {
process.emit("SIGINT");
}
}
process.on("SIGINT", function() {
server.close(function () {
process.exit(0);
});
});
对于 Linux 个节点,我想您也想收听 "SIGTERM"。
我想知道是否对此有任何补救措施,在前面提到的场景中,VMSS 完全无法使用——我无法部署,也无法 运行 节点 Web 服务器。如何在不破坏并重新创建集群的情况下重启集群?我现在意识到你不能只重启 VMSS 实例 willy-nilly 因为如果你这样做,服务结构会完全中断,显然是不可撤销的
Rajeet Nair [RajeetN@MSFT]
Service Fabric also sends a Ctrl-C to service processes and waits for service to terminate. If the service doesn't terminate for 3 minutes, the process is killed.