分享一个Java写的DNS服务器

因为之前工作需要,写了一个DNS服务器,后来维护了半年,公司内部也一直在使用,现在比较稳定了,拿出来跟大家分享。

主要有DNS代理和缓存功能,也可以用hosts风格自定义域名,之前遇到的DNS服务器配置起来都比较复杂,实际上我们自己搭建大多数都是内网或者自己用,根本用不着。我这个默认代理了google的DNS8.8.8.8,启动起来就能用了,不需要什么配置。只支持A记录配置,不过内部DNS算是足够了。

设计方面,当做一个web服务器来写的,也分了connector、container什么的,connector用的是多线程reactor。

缓存用了EhCache,性能还是比较好的。这个程序在我的笔记本上跑到50000qps,超过了BIND和pdnsd。

项目地址:https://github.com/code4craft/blackhole

安装可以用脚本:

curlhttp://code4craft.github.io/blackhole/install.sh|sh

对Java底层有兴趣的可以看看!

相关推荐