【发布时间】:2021-01-24 17:47:11
【问题描述】:
我正在使用运行 Windows Server 2019 的 Google Cloud Platform 中的 VM。我目前有一个简单的 TCP 服务器 (node.js),它接收数据,然后使用 Axios 将其发布到我的 firestore 数据库。对我来说重要的是服务器不会崩溃,如果它崩溃了,它可以重新启动并“保持活力”。我怎样才能做到这一点?
VM 和 TCP 服务器的新手。做个简单的
TCP
const net = require('net');
const axios = require('axios')
const chalk = require('chalk');
const server = net.createServer(conn => {
console.log(chalk.green('new client'));
conn.on('data', data => {
// let add = conn.address()
console.log(data)
if(data.length > 0){
axios.post('https://abc', {
data: data
})
.then(response => {
conn.write('ACK');
}).catch(err =>{
conn.write('ERR', err)
console.log(err)
})
}
});
conn.on('end', () => {
console.log(chalk.red('client left '));
console.log(chalk.white.bold('----------------------------------'));
});
});
server.listen(8080);
【问题讨论】:
-
通常有一个单独的进程负责充当“看门狗”,并确保在严重故障时重新启动和通知。
-
是否有任何建议的流程来监控简单的 TCP 服务器?
-
搜索“node.js restart crashed process”等。注意crash/not-running与broken-code-not-responding/network-down/等不同,后者需要适当检测在这些案例中,不仅仅是一个基本的流程监视器,然后将其反馈到一些行动(或警报)以处理这种情况。
标签: javascript node.js google-cloud-platform tcp virtual-machine