Tag: consul

在Nodejs上使用DNS进行领事服务发现

TL; DR 大家好,我试图通过Consul DNS接口从一个nodejs前端调用nodejs后端微服务,但我有错误。 我正在使用nodejs dns api为单一节点应用程序设置dns,以便随后对本地Consul DNS接口执行dns.resolve()调用。 目标 我希望能够向我的后端服务发出http请求,而不需要在我的客户端代码中连接其IP和端口。 我不想编写一个自定义代码来查询Consul HTTP API,以便随时调用我的服务来获取我的服务的ip:port对。 问题 问题是,当我使用axios (类似于请求 )对后端服务进行HTTP调用时,我总是得到一个错误,因为它无法parsing地址。 看来Axios并没有使用我之前设置的dns: dns.setServers(['127.0.0.1:8600']); Update_1 将虚拟机的dns(/etc/resolv.conf)设置为localhost,使用默认的dns使用-recursor命令行选项,一切正常! 我仍然想知道我在做什么错误设置只在我的nodejs应用程序的DNS。 build立 1节点与一个nodejs进程运行一个简单的Web服务器与Expressjs。 在app.get('/')路由中,它通过consul和axios(如request)对一个名为be01的后端服务进行REST POST调用。 2 BE节点与一个nodejs进程运行一个简单的Web服务器与Expressjs暴露REST API。 1 Consul节点与Consul作为服务器运行。 每个节点都有自己的领事代理正在运行并join到集群中。 TCP端口正确打开 这是服务器: 这是来自Consul UI: 在FE节点上运行领事成员我得到: agent-server 10.0.1.7:8301 alive server 1.0.1 2 dc1 <all> agent-be-01 10.0.1.5:8301 alive client 1.0.1 2 dc1 <default> agent-be-02 10.0.1.6:8301 […]