无法使用DNS

时间:2019-06-08 20:49:03

标签: node.js dns consul

我正在使用NPM的request软件包来处理服务之间的一些内部通信。我还将DNS服务器设置为正确的服务器(使用Hashicorp Consul作为我的SD和DNS)。

我可以在本地计算机(正在运行服务的地方)上挖到领事DNS服务器,并且能够获得正确的响应(IP和端口号)。

我如何在app.js文件中设置DNS6

dns.setServers([ `${config.consul.host}:8600` ]);

设置与app.js不同的文件

options = {
    baseUrl: `http://auth.service.consul`,
    json: { '': '' },
    headers: { authorization: '' }
};

与上述选项相同的文件

request.post(req.path, options, (error, response, body) => {
    console.log(error);
    if (error) throw error;
    res.status(response.statusCode).json(body);
});

错误消息:

    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:56:26)
  errno: 'ENOTFOUND',
  code: 'ENOTFOUND',
  syscall: 'getaddrinfo',
  hostname: 'auth.service.consul',
  host: 'auth.service.consul',
  port: 80 }

使用Consul作为我的DNS服务器时,我希望能够向“身份验证”服务发出请求。我目前有一个非常骇人听闻的方法,但是我真的很想使用DNS。

我确实找到了这个,但是它与axios包有关,而不是我要使用的请求,即使它产生了相同的错误,解决方案也无济于事。 Consul service discovery with DNS on Nodejs

1 个答案:

答案 0 :(得分:0)

您可能遇到鸡肉和鸡蛋问题。尝试将${config.consul.host}解析为一个IP地址,然后使用该IP地址调用dns.setServers