【问题标题】:How can I make sure a TCP server will always be running on a VM (google cloud)如何确保 TCP 服务器始终在 VM 上运行(谷歌云)
【发布时间】: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


【解决方案1】:

在 Windows Server 上运行 node.js 应用程序有几个挑战。

  1. 安装和设置检测 node.js 应用程序失败并重新启动应用程序的监控应用程序。提供此功能的示例产品是node-windows

https://www.npmjs.com/package/node-windows

这是一个示例,并非针对任何特定产品的推荐。

  1. 必须安装监控应用程序并将其设置为 Windows 服务,以便监控应用程序自动重新启动。应用程序node-windows 也提供此功能。

  2. 在您的用户环境之外安装应用程序文件。这意味着创建一个具有正确所有权和权限的目录,以便 Windows 服务可以访问这些文件。

Charan Tej 写的这篇文章可能有助于理解细节:

Node Windows Service for Running Node.js Application

【讨论】:

  • 在您回复之前,我开始使用 PM2:pm2.keymetrics.io 如果您知道的话,会很高兴您对此提出意见。如果我要在我的虚拟机上切换操作系统,你会推荐什么?
  • @Yewla PM2 是一个众所周知的软件包。我使用 pm2-windows-service 来设置服务部分。我去年开始使用 Adam Tuttle 写的这篇文章。 adamtuttle.codes/blog/2019/node-apps-as-windows-services
猜你喜欢
  • 2019-09-22
  • 2021-10-27
  • 1970-01-01
  • 2017-05-29
  • 2021-07-15
  • 2019-10-17
  • 2021-11-14
  • 1970-01-01
  • 2021-02-03
相关资源
最近更新 更多