我正在运行一个Beego应用程序,该应用程序依赖于/ etc / hosts中的更新(通过Docker链接)来查找其他服务器。 / etc / hosts更新正常,但应用程序不会使用新主机,除非它重新启动或等待太长时间。在查看了src/net/hosts的文档之后,看起来我被锁定了5分钟的刷新时间。
有没有办法强制这个缓存刷新,或者我是以错误的方式看待这个问题?
答案 0 :(得分:0)
The hosts file cache time in Go was shortened to 5 seconds. Go的行为不同,无论是使用纯Go(默认,有异常)还是使用Cgo解析器。为了避免纯Go解析器的Go内部缓存,除了强制使用Cgo解析器之外,目前还没有办法。
There are various ways to force Go to use the Cgo resolver. way to force Go to use the Cgo resolver suggested by the documentation是将环境变量GODEBUG
设置为netdns=cgo
。