登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 >> SoftHub关联区 >> 主题: Godns - Go实现的DNS缓存服务器[zt]     [回主站]     [分站链接]
Godns - Go实现的DNS缓存服务器[zt]
clq
浏览(245) - 2018-12-23 23:18:48 发表 编辑

关键字: golang


Godns - Go实现的DNS缓存服务器

https://studygolang.com/articles/1252
 
这是一个创建于 2014-10-11 10:15:28 的文章,其中的信息可能已经有所发展或是发生改变。

最近用Go写了一个DNS缓存服务器,主要实现两个功能:

    DNS缓存
    有缓存失效机制,在cache未命中时,支持设置上层递归服务器。
    全局hosts
    维护全局的hosts设置,统一实现解析域名到指定IP的需求。
    另外,支持动态更新hosts记录,而不需要重启服务器进程。

重新造一个轮子的原因

实现了DNS缓存服务器并支持自定义的hosts的开源软件有很多,例如dnsmasq,之所以我们要自己写一个,是因为dnsmasq的hosts记录都是写在本地文件中,更新一条记录后,要重启进程才能生效。而我们需要能在不同的服务器上共同维护一个全局的hosts记录,并在hosts记录修改后能立即生效。目前能找到的实现,包括dnsmasq,pdnsd,djbdns,还没有一个能完全满足我们需求的。
用Go实现的原因

之所以用Go来实现主要是担心Python的性能问题,刚好最近看了大量Go的开源项目,因此便想要Go来尝试一下。实践证明,Go确实非常适合这类服务器端应用的开发。程序性能还不错,我们在4核2.5G CPU, 46G 内存的服务器上测试,每秒大概能处理1.6W多个请求,这台机器上同时还跑了一些其它应用,如果在干净的机器上测试,数据应该还会更好一些。另外,整个开发效率也没比python慢多少,差不多一个礼拜就完成了所有功能的开发。

目前godns已经部署到了我们的生产系统。
同时把代码放到github上:https://github.com/kenshinx/godns , 欢迎有需要的同学试用,如果有什么问题可以在github上反馈。

Godns - Go实现的DNS缓存服务器
kenshin · 2014-10-11 10:15:28 · 6211 次点击 · 预计阅读时间 1 分钟 · 大约11小时之前 开始浏览    
这是一个创建于 2014-10-11 10:15:28 的文章,其中的信息可能已经有所发展或是发生改变。

最近用Go写了一个DNS缓存服务器,主要实现两个功能:

    DNS缓存
    有缓存失效机制,在cache未命中时,支持设置上层递归服务器。
    全局hosts
    维护全局的hosts设置,统一实现解析域名到指定IP的需求。
    另外,支持动态更新hosts记录,而不需要重启服务器进程。

重新造一个轮子的原因

实现了DNS缓存服务器并支持自定义的hosts的开源软件有很多,例如dnsmasq,之所以我们要自己写一个,是因为dnsmasq的hosts记录都是写在本地文件中,更新一条记录后,要重启进程才能生效。而我们需要能在不同的服务器上共同维护一个全局的hosts记录,并在hosts记录修改后能立即生效。目前能找到的实现,包括dnsmasq,pdnsd,djbdns,还没有一个能完全满足我们需求的。
用Go实现的原因

之所以用Go来实现主要是担心Python的性能问题,刚好最近看了大量Go的开源项目,因此便想要Go来尝试一下。实践证明,Go确实非常适合这类服务器端应用的开发。程序性能还不错,我们在4核2.5G CPU, 46G 内存的服务器上测试,每秒大概能处理1.6W多个请求,这台机器上同时还跑了一些其它应用,如果在干净的机器上测试,数据应该还会更好一些。另外,整个开发效率也没比python慢多少,差不多一个礼拜就完成了所有功能的开发。

目前godns已经部署到了我们的生产系统。
同时把代码放到github上:https://github.com/kenshinx/godns , 欢迎有需要的同学试用,如果有什么问题可以在github上反馈。



总数:0 页次:1/0 首页 尾页  
总数:0 页次:1/0 首页 尾页  


所在合集/目录
golang新技术 更多



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1