powerdns源码
wellwang1993
这个作者很懒,什么都没留下…
展开
-
PowerDNS-架构分析
//这部分是有关后端查询的部分。假设后端用的是mysql,可以看到如果没有缓存的话那就是直接对数据库的查询class gMySQLFactory : public BackendFactory{ DNSBackend *make(const string &suffix="") { return new gMySQLBackend(d_mode,suf...原创 2019-01-29 15:18:49 · 1458 阅读 · 0 评论 -
Linux-SO_REUSEPORT特性
Linux对于多核处理网络问题的时候,一般是俩种模型1.单进程或者单线程创建socket,同时监听链接socket和监听socket,有事物发生的话就创建进程或者线程去处理这种的弊端在于单线程或者单进程会发生性能瓶颈2.单进程或者单线程创建socket,并进行listen,然后创建一批进程或者线程去同时accept该套接字这种的弊端在于可能会发生惊群现象,就是事件发生唤醒多个进程但...转载 2019-01-29 15:51:35 · 966 阅读 · 0 评论 -
PowerDNS-导言
首先从外部功能的角度去说一下,这里都是参考它的文档1.可以运行在一个保护模式下,同时也提供日志相关的2。需要一个控制socket,来和pdns交互 PacketHandler类封装question到DNSBackend.,powerdns采用UeberBackend作为它的DNSBackend采用这里介绍它整体的一个流程,下面的部分第一个是它的类,可以从最下面的ma...原创 2019-01-30 17:43:58 · 656 阅读 · 0 评论 -
PowerDNS类-UeberBackend
该类负责所有模块的加载,加载完的模块会放到内部的backends vector中内部含有一个class handlerclass UeberBackend{ static vector<UeberBackend *>instances; static pthread_mutex_t instances_lock; static bool lo...原创 2019-01-30 18:38:58 · 190 阅读 · 0 评论