Я использую пакет request от NPM для обработки некоторой внутренней связи между службами.Я также установил правильный DNS-сервер (используя Hashicorp Consul в качестве SD и DNS).
Я могу выполнить раскопки на своей локальной машине (где работают службы) на DNS-сервере consul иЯ могу получить правильный ответ (IP и номер порта.
Как настроить DNS в моем файле app.js6
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 }
Я хочу иметь возможность отправлять запросы в службу 'auth'при использовании Consul в качестве моего DNS-сервера. В настоящее время у меня есть очень хакерский способ сделать это, но я действительно хотел бы использовать DNS.
Я нашел это, но это относится к пакету axios, а не к тому запросу, которым я являюсьпытаясь использовать, даже если он выдает ту же ошибку, решение там не помогло. Обнаружение службы Consul с DNS на Nodejs