随笔分类 - 源码分析
摘要:分布式对象存储系统seaweedfs源码阅读笔记
阅读全文
摘要:本文简要介绍一下BIND9中的UDP数据处理,包括如何创建socket、设置什么socket参数、多线程环境中如何让多个线程读取53端口的数据等等。BIND9的架构采用event-driven和task-based。对于像TCP这样的事件采用event-driven来等待读写时间,而在多线程方面,采...
阅读全文
摘要:BIND配置中一大堆一大堆的acl,什么allow-query, allow-recursion, allow-update还有view的match-clients等等等等。 acl中的主要存储的就是IP,可以把acl当做是一个IP池,在需要验证的时候就从这个IP池中查找该IP是否存在。那么B...
阅读全文
摘要:BIND中view的存在提供了一种较好的智能DNS方案,BIND可以根据用户的来源IP为其返回不同的Resource Record。 但是关于DNS动态更新的RFC2136中并没有提及view(view只是BIND的一种智能DNS策略,跟DNS文档无关),那么在多个view中存在相同的zone...
阅读全文
摘要:BIND中有一些操作是定时任务,server.c的run_server函数中创建了三个定时任务,分别执行interface_timer_tick、heartbeat_timer_tick和pps_timer_tick;其他模块中还有很多时间任务。我们知道linux中的定时器可以用条件变量实现(用其...
阅读全文
摘要:因为从事的是DNS方面的工作,而且也很想学习高性能服务器的知识,所以学习BIND9的实现既能兼顾工作又可以学到高性能服务器的知识。 BIND9的代码前前后后也读了很久,相关的实现自己也整理了一些,之所以开这个博客专题出于以下两个方面的原因: 一是市面上BIND9源码分析的资料太少了,而且代码量又很大,所以对于像我这样的新手来说入门门槛实在太高,所以想把自己的总结分享出来,帮助那些新人。by the way,我现在工作的部门的宗旨就是:基础、极致、分享。 二是想借此机会认识更多的从事DNS服务器维护或者开发的人员,这个圈子说大不大,说小不小,技术人员是一家人,希望大家能共同努力,做出真...
阅读全文