Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

将远端服务器的请求改为一次发出去然后谁先到就返回谁的结果 #15

Closed
wants to merge 1 commit into from

Conversation

xurenlu
Copy link

@xurenlu xurenlu commented May 6, 2015

没必要用同步等待呀,把请求同时发给所有服务器,然后等返回多好...还非要一个个地等服务器的返回呀?

@kenshinx
Copy link
Owner

kenshinx commented May 7, 2015

查询并不是同步的,而是一秒一个请求(这个时间当然可以修改,依赖上层递归的速度),哪个请求先响应就立即返回。

  1. 如果按照你PR里面的修改,在高并发情况下,会有大量无意义的请求,会对上层递归造成压力。
  2. 通常递归服务器有主辅的概念,加上同步控制,可以保证先查询主服务器。

@xurenlu
Copy link
Author

xurenlu commented May 7, 2015

明白问题差异了,我的场景是这样的,处于内网场景中,内网有2套dns server ,一个时查询内网域名时用到,一个是查询开发环境域名时用到;内网 dns server 也能查外网域名,就是比较慢,同时我还希望能够实现一些自定义的泛域名支持,比如*.local.example.com 就全部指向某一个开发机,这个时候多个ns server是有优先级的;
但是在另一个场景的时候 ,需求变了,唯 一的追求就是,要快,要快.因为前几个 server 根本连不上,我每次都要等几秒才能真正请求正确的name server了.由于跑在自己的笔记本上,性能实际上也不是问题,因此就这样改造了.
性能的考虑,在高qps确实是要考虑的.不过话说回来,1秒请求一个,太慢了点,我认为给每个dns server ,留200个ms 足够了.

@kenshinx
Copy link
Owner

kenshinx commented May 7, 2015

泛域名支持,比如*.local.example.com *.local.example.com

我觉得这是个合理需求,我新建了一个issue来跟踪。
kenshinx/godns/issues/16

1秒请求一个,太慢了点,我认为给每个dns server ,留200个ms 足够了.

我已经更新了代码,你现在可以在配置文件中自定义轮询时间了。

@kenshinx kenshinx closed this May 14, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants