08 2013 档案
摘要:这段时间在做一些web方面开发的事情,用的Nginx+fast-cgi,计划深入看一下Nginx的内部实现和架构,以方便理解和调优。后面准备写一篇有关Nginx介绍和深度解析的文章,要深入理解web服务器的工作原理,网络编程的基本概念和知识不可或缺。这篇文章先对于网络编程中比较容易混淆的几个问题做一个复习和总结,主要参考自《unix网络编程》这本书。 首先,简单总结一下传输层tcp协议的两个琐碎的点。 1、TIME_WAIT状态问题:tcp三次握手建立连接,四次挥手来释放连接,这个大家都熟悉。在释放连接时,主动发起关闭连接的一方的一方会在发送最终确认ack后会有一个TIME_WAIT的...
阅读全文
摘要:前些天看到一篇不错的文章[1],讲的是网站架构的发展历史,这种综述的文章往往很难得,这里进行一个简化诉述和我个人的解读,详细的信息可以参看Ref的连接。首先,我先给一个通俗的理解,网站架构发展的驱动力是用户数和数据量的膨胀,压力瓶颈在websever连接和database之间来回切换,解决问题的三板斧:加缓存(精益求精地做缓存。。。)、加机器(多搞搞分布式,一台不行多台)和功能分离(读写分离、业务分离、动静分离等等)。下面是所读那篇文章的主要思路。 网站架构的演变主要经历了如下几个阶段: 1、物理分离webserver和数据库 比较直观,不再赘述。 2、增加页面缓存 目的是减小数据库连接的资.
阅读全文
摘要:Thrift是facebook的一个技术核心框架,07年四月开放源码,08年5月进入apache孵化器。 简言之,开发者可以通过写一个.thrift文件,定义相应的数据结构和服务接口,该thrift文件会由Thrift相应的解释器解释生成指定的类型(C++,java等等)代码,然后用户在客户端和服务器端,分别在生成的代码里编写相应的服务接口函数,并做相应配置选择,就可以实现跨平台的rpc调用。 这里给出一个使用的简单例子,之中牵扯到了一些编译方面的细节问题。 定义数据结构的.thrift文件book.thrift://book.thriftnamespace cpp examplestruc.
阅读全文
摘要:我这段时间在用redis,感觉挺方便的,但比较疑惑在选择内存数据库的时候到底什么时候选择redis,什么时候选择memcache,然后就查到下面对应的资料,是来自redis作者的说法(stackoverflow上面)。 You should not care too much about performances. Redis is faster per core with small values, but memcached is able to use multiple cores with a single executable and TCP port without help ..
阅读全文
摘要:这里对近来看的部分NoSQL资料做一个汇总记录,主要包括简史、粗略分类及数据库选择的考虑事项。NoSQL常见的解释是“non-relational”,有时也称作Not Only SQL。 1、数据库发展的简单历史,个人感觉这篇文章(Ref:[2])讲得挺好的,知道过去才能把握未来: 在90年代,一个网站的访问量一般都不大,用单个数据库完全可以轻松应付。在那个时候,更多的都是静态网页,动态交互类型的网站不多。 到了最近10年,网站开始快速发展。火爆的论坛、博客、sns、微博逐渐引领web领域的潮流。在初期,论坛的流量其实也不大,如果你接触网络比较早,你可能还记得那个时候还有文本型存储的论...
阅读全文

浙公网安备 33010602011771号