node.js 通过 tcp 方式获取随机端口与使用场景
 · 阅读需 2 分钟
某些场景可能需要动态的获取端口来启动服务,可能服务化场景,不直接硬配置端口。
哈哈,这看来是要为分布式、服务注册、服务发现做准备呢。
/**
 * auto port
 * @authors luoyjx (yjk99@qq.com)
 * @date    2016-10-16 20:42:57
 */
var net = require('net');
var server = net.createServer();
    server.on('error', console.log);
    server.on('listening', function () {
      var port = server.address().port;
      server.close(function () {
        console.log('auto port: %s', port);
      });
    }.bind(this));
// tcp 使用端口 0 表示系统分配端口
server.listen(0);
服务在启动的时候,首先去获取一个可用端口,将自己使用此端口启动,再注册到配置管理中,这样即可实现服务注册了。 配合 etcd 即可实现服务发现,不过还木有实践。