dns - 如何在我的 go 应用程序中读取 consul SRV 记录?

标签 dns go consul

我正在尝试实现 consul用于服务发现,我在两件事上遇到了麻烦:连接到自定义 DNS 服务器,以及格式化我的 net.LookupSRV()请求。

这是我试图从我的 go 应用程序中查找的内容:

$ dig @127.0.0.1 -p 8600 serviceb.service.consul SRV

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> @127.0.0.1 -p 8600 serviceb.service.consul SRV
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4511
;; flags: qr aa rd; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 2
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;serviceb.service.consul.   IN  SRV

;; ANSWER SECTION:
serviceb.service.consul. 0  IN  SRV 1 1 80 az1-serviceb1.node.dc1.consul.
serviceb.service.consul. 0  IN  SRV 1 1 80 az2-serviceb2.node.dc1.consul.

;; ADDITIONAL SECTION:
az1-serviceb1.node.dc1.consul. 0 IN A   10.6.41.22
az2-serviceb2.node.dc1.consul. 0 IN A   10.6.41.20

;; Query time: 6 msec
;; SERVER: 127.0.0.1#8600(127.0.0.1)
;; WHEN: Fri May 16 15:09:28 2014
;; MSG SIZE  rcvd: 275

这是相关代码。 (我知道这是错误的,但只是为了让你看到我正在尝试做的事情)

cname, addrs, err := net.LookupSRV("serviceb", "service", "consul")
log.Printf("%+v %+v %+v", cname, addrs, err)

和输出:

2014/05/16 15:24:31  [] lookup _serviceb._service.consul: no such host

任何帮助将不胜感激!谢谢

最佳答案

尝试使用更锋利的工具,例如 github.com/miekg/dns包裹。上次我查看它时,它几乎允许控制客户端设置的每一部分来进行 DNS 解析。

关于dns - 如何在我的 go 应用程序中读取 consul SRV 记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23699140/

相关文章:

c# - 使用 Go 编码 UTF-8

go - 编码(marshal)时间带小数点的时间

go - 我应该在哪里存储服务注册服务器的端点?

iOS:解析 DNS SRV 记录

java - 通过Java检查域名年龄

asp.net - 当开发环境不在域上时,如何在域上测试 ASP 应用程序?

Consul - 为不同的主机部署不同的配置

dns - 规范 URL 的 www 域 IP 地址和非 www 域 IP 地址

pointers - 返回文字与指针

java,OrbitzWorld consul 客户端 - 如何管理 session 和锁?