- 博客(54)
- 资源 (5)
- 收藏
- 关注
如何编写一个可靠的linux守护进程
linux服务端程序都需要提供7 * 24不间断的服务,如何保证工作进程一直不退出或者不被kill掉,常见的方法就是启动一个守护进程来检测工作进程的状态,如果发现工作进程退出,就再fork一个出来。一般的实现见下面一段代码:// 守护进程(父进程)int status;for ( ; ; ) { if ( 0 == ( pid = fork()) ) {...
2013-02-17 15:13:48
322
linux后端服务程序之信号处理
信号就是通知某个进程发了某个事件,也称为软件中断。信号提供了一种处理异步事件的方法。信号通常是异步发生的,进程预先不知道信号准确发生的时刻。后端程序(daemon)往往需要提供7*24不间断的服务,因此,编程daemon程序时对信号的正确处理尤为重要。下面和大家分享编写daemon程序时信号处理的注意事项,内容都来自Internet,只是进行了整理和总结。关于信号的基础知识请...
2012-06-02 15:30:33
254
原创 libeio源码分析 – 主流程
@淘宝千石简介This library provides fully asynchronous versions of most POSIX functions dealing with I/O. Unlike most asynchronous libraries, this not only includes read and write, but also open, stat...
2012-05-01 20:52:31
278
Redis skip list结构分析
如何实现一个海量用户的实时排名系统?或许可以用mysql搞一个纠结的方案;但要是选择了redis,那绝对是既简单又优雅。Redis的zset本身就是一种支持排序的集合,而zset的实现,则使用了skip list数据结构。Skip list是一种多层次的有序链表,通过随机地选择层数来实现插入、查找和删除都是O(logn)的时间复杂度(和平衡树同样的效率,但实现比平衡树简单很多)。关于skip ...
2011-12-03 22:12:33
240
Redis zipmap内存布局分析
Redis被称为key/value应用中的瑞士军刀,除了其丰富的数据结构支持,更重要的是高效的内存使用,分析源码可以发现作者使用每一个byte都精打细算。在hashtable实现中,Redis引入了zipmap数据结构,保证在hashtable刚创建以及元素较少时,用更少的内存来存储,同时对查询的效率也不会受太大的影响。下面就以源码和例子结合的方式来分析一下zipmap的内存布局。先来看一...
2011-12-03 22:10:59
172
memcache redundancy 机制分析及思考
设计和开发可以掌控客户端的分布式服务端程序是件幸事,可以把很多事情交给客户端来做,而且可以做的很优雅。角色决定命运,在互联网架构中,web server必须冲锋在前,注定要在多浏览器版本以及协议兼容性方面呕心沥血。但要是做了web server的backend,就会好很多,可以让服务端程序独善其身,分布式的功能特性都由客户端来支持和实现。memcache就是这样的设计模式。memcache是后...
2011-12-03 22:08:17
231
Beanstalkd 一个高性能分布式内存队列系统
之前在微博上调查过大家正在使用的分布式内存队列系统,反馈有Memcacheq,Fqueue, RabbitMQ , Beanstalkd以及linkedin的kafka。RabbitMQ使用比较广泛,Beanstalkd是后起之秀。Beanstalkd之于RabbitMQ,就好比Nginx之于Apache,Varnish之于Squid。后面在项目中使用Beanstalkd的过程中,更发现其...
2011-12-03 22:03:18
226
服务端无状态的TLS seession resumption机制
SSL session resumption的原理是在服务端缓存所有的session,客户端之后在每次和服务端握手时通过Session ID完成session resumption。这种机制对服务端有如下挑战:1. 如果是在本机缓存session,必须保证同一个客户端的请求要落到同一台服务器,这无疑给前端负载均衡策略增大了压力。2. 如果是为一个集群单独一个...
2011-11-27 11:27:32
407
SSL session resumption原理
很多人熟悉HTTPS,却不知道SSL。HTTPS正是通过SSL和HTTP的组合来提供加密通讯以及对网络服务器身份的鉴别。SSL全称为 Secure Socket Layer,是一种在两台机器之间提供安全通道的协议。它具有保护传输数据以及识别通信机器的功能。客户与服务器之间的数据是经过加密的。SSL 假定其下层的数据包发送机制是可靠的。写入网络的数据将依顺序发送给另一端的程序,不会出现丢包或重传...
2011-11-27 10:52:30
959
Traffic Server Net子系统分析
Traffic Server设计的思想是将一个大系统划分为若干个小的子系统,每个子系统负责专门的任务或应用。比如,Event子系统负责提供任务调度服务,Net子系统负责提供网络服务。每个子系统抽象为一个Processor,如图1所示。这种高内聚低耦合的设计原则使系统具有更好的重用性,维护性和扩展性。例如,如果hostDBProcessor需要进行DNS解析,可以直接调用dnsProcessor...
2011-11-27 10:45:21
187
Traffic Server多线程异步事件处理模型
多线程和异步事件处理是设计高并发和高性能服务器程序的主要技术,但很少有应用把两种技术组合在一起使用,原因是二者的组合会增加系统的复杂度,并使代码难以理解。多线程程序可以充分利用现代处理器多核的处理能力,使一个进程的多个任务可以并行执行,提高程序执行的效率。但多线程程序也有其不可回避的缺点。资源竞争导致的死锁,线程调度和切换带来的开销,限制了服务器程序处理连接的能力。异步事件处理程序避免了多线程...
2011-11-27 10:26:54
402
Traffic Server 管理员指南v1.0
翻译了Traffic server管理员指南,Apache收录链接如下:http://trafficserver.apache.org/docs/v2/admin/ts_admin_chinese.pdf
2011-11-27 10:18:15
232
Traffic Server 反向代理缓存
作为反向代理缓存,Traffic Server为源服务器服务请求。Traffic Server被配置成对客户端而言是正常的源服务器的方式。理解反向代理缓存通过前向代理缓存,Traffic Server为客户端处理发往远距离源服务器的web请求。反向代理缓存(又称服务器加速或虚拟主机托管)和前向代理不同,因为Traffic Server作为源服务器的代理缓存并存储内容。Traffic S...
2011-11-26 22:48:13
375
Traffic Server 缓存HTTP对象
Traffic Server响应来自客户端、源服务器以及通过配置选项和文件指定的缓存指示。客户端指示默认情况下,Traffic Server不缓存含有如下请求头部的对象:Cache-Control: no-store头部Cache-Control: no-cache头部配置Traffic Server忽略Cache-Control: no-cache头部,见Conf...
2011-11-26 22:45:47
296
Traffic Server HTTP对象保鲜
当Traffic Server收到一个web对象的请求,它首先尝试着在缓存中定位该对象。如果该对象在缓存中,Traffic Server将会检查该对象是否仍然有效。对于HTTP对象而言,Traffic Server支持可选的作者自定义的有效期。Traffic Server坚持这些有效期;另外,它在对象被改变的频率和管理员选择的有效期方案之间挑选一个有效期。对象也可以和源服务器一起检查器有效来...
2011-11-26 22:43:57
222
Traffic Server HTTP代理缓存
Web代理缓存可以用来存储高频访问的web对象(比如文档、图片等)以及为用户的请求提供这些信息。它在改善网络性能的同时,也为其他的任务空出了Internet的带宽。理解HTTP Web代理缓存Internet用户向遍布全球的web服务器发送请求。缓存服务器必须扮演成一个web代理服务器才能服务这些请求。对web代理服务器收到对web对象的请求,它可以选择服务这些请求或者将它们传递给源服...
2011-11-26 22:41:45
266
原创 Traffic Server Overview
Traffic Server 可以加速Internet访问,增强web站点性能,同时也提供前所未有的网络托管能力。Traffic Server是什么Traffic Server是一个高性能的web代理缓存,它通过将频繁访问的信息缓存在网络的边缘来改善网络的效率和性能。这使内容在地理上更接近终端用户,在更快分发的同时也减少了带宽的使用。Traffic Server致力于通过充分利用现...
2011-11-26 22:38:11
325
原创 php扩展编写
<br />http://devzone.zend.com/public/view/tag/Extension<br /> <br />http://www.phpchina.com/?action-viewnews-itemid-36775<br /> <br />http://blog.csdn.net/oyd/archive/2008/10/28/3168417.aspx<br /> <br />http://my.huhoo.net/archives/2008/06/linuxcphp.html
2010-12-25 15:21:00
383
原创 Traffic Server技术blog开篇词
<br />原文出自千石的个人blog:http://www.flyinfo.net/<br /> <br /> <br />TCP/IP和HTTP是互联网的两大基石,支撑着数以亿计的Web站点和应用。高性能始终是衡量web server的重要指标,而代理和缓存作为两个重要的技术,在提高web server的并发和吞吐方面有着不可替代的作用。<br />开源造就了互联网,开源项目更是遍布互联网的每个角落。Squid、Vanish、nginx、HAProxy都是HTTP代理和缓存方面的神兵利器,各自在这个
2010-10-30 13:05:00
972
原创 Traffic Shell man手册
原文出自千石的个人blog:http://www.flyinfo.net/2010/10/traffic-shell-man%e6%89%8b%e5%86%8c/Traffic Shell是一个监控和配置Traffic Server的命令行工具。Traffic Server通过手册(man)的形式来为Traffic Shell提供文档。源码安装了Traffic Server,却找不到man,网上也找不到,最后在一台安装了老版本traffic server的机器上找到,贴出来方便大家查看。——————
2010-10-30 13:02:00
1307
原创 Traffic Server Overview
原文出自千石的个人blog:http://www.flyinfo.net/2010/10/traffic-server-overview/Traffic Server 可以加速Internet访问,增强web站点性能,同时也提供前所未有的网络托管能力。Traffic Server是什么Traffic Server是一个高性能的web代理缓存,它通过将频繁访问的信息缓存在网络的边缘来改善网络的效率和性能。这使内容在地理上更接近终端用户,在更快分发的同时也减少了带宽的使用。Traffic Server致
2010-10-30 12:58:00
1566
原创 spidermonkey
<br />http://www.mozilla.org/js/spidermonkey/<br /> <br />http://blog.csdn.net/singlerace/archive/2006/11/06/1370215.aspx<br /> <br />http://www.ibm.com/developerworks/cn/linux/shell/js/js_engine/index.html
2010-08-23 17:17:00
494
原创 python
<br />http://xzio.javaeye.com/blog/121291<br /> <br />http://tech.it168.com/a2009/0703/600/000000600339.shtml<br /> <br />http://wiki.ubuntu.org.cn/Python%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97<br /> <br />
2010-08-23 17:12:00
653
原创 异步WinInet
<br />http://www.cppblog.com/gtwdaizi/articles/39107.html<br /> <br />http://hi.baidu.com/ljp2010/blog/item/d28932012134110b7bec2c15.html
2010-08-05 19:23:00
444
原创 StartUML
<br />http://vs0601884.blog.163.com/blog/static/121957390200961374159582/
2010-06-24 14:31:00
476
原创 异步过程调用APC
<br />http://adilevin.wordpress.com/2009/06/13/asynchronous-procedure-call/<br /> <br />http://weblogs.asp.net/kennykerr/archive/2007/12/11/parallel-programming-with-c-a-new-series.aspx<br /> <br />http://www.douban.com/group/topic/11015963/<br /> <br />ht
2010-06-03 11:25:00
537
原创 I/O模型
http://www.ibm.com/developerworks/cn/linux/l-async/ http://www.acejoy.com/space/html/11/t-911.html http://blog.csdn.net/flyingtimeice/archive/2009/03/13/3987297.aspx http://www.cppblog.co
2010-05-23 15:45:00
416
原创 内存泄露
1,在 Linux 平台中调试 C/C++ 内存泄漏方法http://www.ibm.com/developerworks/cn/linux/l-cn-memleak/2,如何在linux操作系统下检测内存泄漏http://linux.chinaitlab.com/administer/526436_3.html3,内存泄漏定位-VChttp://hi.baidu.com/zhanglei
2010-05-20 15:46:00
378
原创 DNS解析
http://www.chiark.greenend.org.uk/%7Eian/adns/ http://c-ares.haxx.se/ http://blog.csdn.net/zouxinfox/archive/2008/03/31/2234225.aspx http://blog.chinaunix.net/u1/43662/showart_2129934.html
2010-05-20 15:45:00
443
原创 界面交互设计
http://hi.baidu.com/interaction%5Fdesign/blog/category/%BD%BB%BB%A5%C9%E8%BC%C6%D1%D0%BE%BF http://ruanruan82.spaces.live.com/blog/cns!2233FEF2C8D02797!155.entry http://topic.csdn.net/u/201005
2010-05-13 15:01:00
480
原创 webpagetest源码
http://dev.webpagetest.org/webpagetest/browser?desc=1 http://www.webpagetest.org/forums/showthread.php?tid=21
2010-05-13 14:59:00
663
原创 几个不错的code source
http://codersource.net/ http://www.codeproject.com/ http://www.codeguru.com/ http://www.koders.com/
2010-05-13 14:49:00
396
IT行业经典面试题,121套面试题
2009-03-01
编程珠玑(第2版)中文版+英文版
2008-12-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人