私有name service 续
来源:互联网 发布:java开源邮件系统 编辑:程序博客网 时间:2024/05/19 13:15
这几天折腾了一下~ , 把这个服务程序搭了出来, 总结来说结构上十分简单, 线程池, 搭配getaddrinfo就可以了, 不过一涉及到队列就会有容量限制, 现在来看满足自己的需求是足够了, 不过毕竟getaddrinfo也是阻塞接口, 开了32个线程每个线程1M的队列也总会出现队列满的情况, 仔细想了想, 要么告知客户程序服务繁忙稍后再试, 要么在网络层面上就要予以阻塞, 不过这回导致客户端程序的buff填充满一样会导致客户程序阻塞 ...
总结来说, 这个服务还需要解决以下问题:
1. 全局的缓存层. 因为不同客户机器内的缓存可能并没有缓存别人已经解析过的IP, 那么会重复的请求DNS去解析相同的域名, 导致不必要的处理延时. 所以有必要在该服务内部增加一个有限的缓存, 可以采用LRU进行保留最常用的域名解析结果.
2. 使用getaddrinfo_a代替getaddrinfo. 这个接口可以一定程度上缓解由于阻塞的API导致的队列问题, 不过线程池就不必要了, 可以开多个服务进程, 客户机器配置一个端口范围进行请求, 不过这样的话需要更强的容错处理, 更换请求机制, 一个好的分布式程序需要容忍任何一个进程随时挂掉和重启.
:)
- 私有name service 续
- 建立私有的name service
- Net service name, Service name, Sid, TNS
- Google service name
- name service cache daemon
- Change Oracle Service Name
- pppoe service name详解
- Oracle中Service Name、Database name、Instance Name的区别
- Oracle中Service Name、Database name、Instance Name的区别
- Oracle中Service Name、Database name、Instance Name的区别
- Oracle中Service Name、Database name、Instance Name的区别
- Oracle SID VS Service Name
- Oracle动态注册service name
- Name or service not known
- Self-learning: Hosted Service Name and Storage Name
- oracle sid,service name,instance name等术语
- python中类的私有成员的 name managing
- About Name Directory Service (in English)
- gentoo mplayer 没有图像问题
- WareZ
- 帮我买个单——中国最佳故事
- C#中循环结构的效率问题
- 用摄动法证明fibs的一个公式(变形)
- 私有name service 续
- 双码流 主码流子码流
- 电信数据迁移的工作分析与总结
- Android ANR问题分析
- SQL Server各种日期计算方法
- 搜索引擎关键字的选取,整形行业长尾词的选择方法
- PDA、导航仪从启动界面进入WCE界面工具
- IE7 iframe session丢失问题解决方案
- Xcode开发员入门导引(简体中文版)