08 2011 档案
摘要:对于网站来说,速度是第一位的。用户总是讨厌等待,面对加载的Video和页面,是非常糟糕的用户体验。所以如何利用Cache来优化网站,值得深入研究。什么是缓存?缓存是一个到处都存在的用空间换时间的例子。通过使用多余的空间,我们能够获取更快的速度。用户在浏览网站的时候,浏览器能够在本地保存网站中的图片或者其他文件的副本,这样用户再次访问该网站的时候,浏览器就不用再下载全部的文件,减少了下载量意味着提高了页面加载的速度。下面这个图例说明了浏览器和服务器之间如何进行交互。缓存的缺点缓存非常有用,但是也带来了一定的缺陷。当我们的网站发生了更新的时候,比如说Logo换了,浏览器本地仍保存着旧版本的Logo
阅读全文
摘要:对于分布式网络环境或者有大量任务的应用,我们需要将任务在不同的服务器之间进行分布,这个时候正好是Gearman发挥实力的时候。虽然我们也可以使用MQ队列再加一些自己实现的调度算法来将任务进行分发,但是既然已经有了成熟的产品,为什么不使用下呢。Gearman介绍Gearman提供了一种通用的程序框架来将你的任务分发到不同的机器或者不同的进程当中。它提供了你进行并行工作的能力、负载均衡处理的能力,以及在不同程序语言之间沟通的能力。Gearman能够应用的领域非常广泛,从高可用的网站到数据库的复制任务。总之,Gearman就是负责分发处理的中枢系统,它的优点包括: 开源:Gearman免费并且开源.
阅读全文
摘要:Boost C++ 库(Libraries)是一组扩充C++功能性的经过同行评审(Peer-reviewed)且开放源代码程序库。大多数的函数为了能够以开放源代码、封闭项目的方式运作,而授权于Boost软件授权条款(Boost Software License)之下。许多Boost的开发人员是来自C++标准委员会,而部份的Boost库成为C++的TR1标准之一。[1] 为了要确保库的效率与弹性,Boost广泛的使用模板(template)功能。而它是针对各式领域的C++用户与应用领域(Application Domain)上,包含的库类从像smart_ptr 库这种类通用库,到像是文件系统的.
阅读全文
摘要:介绍method_exists和is_callable的区别,提醒大家在实际项目中不要犯错
阅读全文
摘要:今天终于拜读了著名GFS的论文,大体上的设计思路是明白了,复杂的系统,其实用了很多简单的逻辑在里面,下面是记录的一些笔记: 设计之初(系统需求) 系统使用便宜的PC节点来实现,所以对于监控和容错要求很高。 系统主要目标为提供大于100Mb的文件服务,常见文件为Gb以上,支持小文件,但是不做优化。 系统主要有两种类型的读:持续的流读和随机的跳读。同时还包括大文件、连续文件的写入和追加。 系统必须支持多客户。例如利用生产者-消费者队列模型或者其他的方法。 网路响应时间需要快。 GFS架构 数据的主从模式 Master的任务 Chunk Size的选择(64Mb) Metadata特点:内存存储、C
阅读全文