首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >去缓存DNS查找吗?

问去缓存DNS查找吗?
EN

Stack Overflow用户
提问于 2016-10-26 00:13:58
回答 2查看 13.5K关注 0票数 13

我正在构建一个测试爬虫,并且想知道Go (golang)是否缓存DNS查询。在强的松中,我没有看到任何关于缓存的内容。这似乎是一个重要的事情添加到任何爬虫,以防止许多额外的DNS查询。

确实(1.4+)缓存DNS查找?

如果没有,那么debian/ubuntu/linux、windows或达尔文/OSX在网络级别的缓存会受益吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-26 01:52:18

你问题的答案是否定的。在std解析器中没有内置的dns缓存。会有帮助吗?也许在某些情况下。我们的组织在每台服务器上运行一个本地dns缓存,并将resolv.conf指向那里。因此,在语言中使用缓存并不一定对我们有多大帮助。

有一些解决办法可以帮助你。这个包裹似乎有一个很好的解决方案。从自述的片段中,您甚至可以这样做:

代码语言:javascript
复制
http.DefaultClient.Transport = &http.Transport {
  MaxIdleConnsPerHost: 64,
  Dial: func(network string, address string) (net.Conn, error) {
    separator := strings.LastIndex(address, ":")
    ip, _ := dnscache.FetchString(address[:separator])
    return net.Dial("tcp", ip + address[separator:])
  },
}

若要为来自http.Get和朋友的所有http请求启用它,请执行以下操作。

票数 20
EN

Stack Overflow用户

发布于 2016-11-16 00:24:02

Go解析器不执行任何进程内缓存.虽然您可以自己滚动,但您最好的选择可能是在每台计算机上运行一个系统范围的DNS缓存。(我最喜欢的是德斯马斯克。)

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40251727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档