随笔分类 - 系统与架构
摘要:越来越多的人开始意识到,网站即软件,而且是一种新型的软件。这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点。网站开发,完全可以采用软件开发的模式。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之间的通信。互联网的兴起,使得这两个领域开始融合,现在我们必须考虑,如何开发在互联网环境中使用的软件。RESTful架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。但是,到底什么是RESTf
阅读全文
摘要:Zookeeper是hadoop的一个子项目,虽然源自hadoop,但是我发现zookeeper脱离hadoop的范畴开发分布式框架的运用 越来越多。今天我想谈谈zookeeper,本文不谈如何使用zookeeper,而是zookeeper到底有哪些实际的运用,哪些类型的应用能发挥 zookeeper的优势,最后谈谈zookeeper对分布式网站架构能产生怎样的作用。 Zookeeper是针对大型分布式系统的高可靠的协调系统。由这个定义我们知道zookeeper是个协调系统,作用的对象是分布式系统。为什么分布式系统需要一个协调系统了?理由如下: 开发分布式系统是件很困难的事情,其中的困难主..
阅读全文
摘要:public class Singleton { private static class Holder { // lazy class static final Singleton instance = new Singleton(); } public static Singleton getInstance() { return Holder.instance; } }
阅读全文
摘要:PHP自带的Session实际是在服务器中为每个客户建立独立的文件存放各自的信息。在不做处理的情况下,很容易被客户端伪造。并且由于采用文件形式,所以存在着IO读写的瓶颈。一般当用户在线达到1000左右时,就会出现访问速度明显下降的问题。Memcache是应用层级的缓存,它将数据存储内存中。内存的访问速度是可想而知的。PHP在使用Memcache之前,需要做两件事。1.安装PHP的memcache扩展。2.下载Memcache文件。以上两步很简单,去Google一下就可以了。下面是memcache.class.php文件中MemcacheSession类memcache.class.phpMem
阅读全文
摘要:范凯 写道高性能并发系统其实分很多种类,是并发读,并发写,并发长连接,还是并发事务?不同类型的架构设计是不同的。具体到12306就是并发事务,在这个领域,我个人没有什么经验。陈雄华 写道1) 优化前端网页充分利用CDN,使JS、图片等静态资源的请求能够就近访问(顺便说一下,如果12306订票插件能从google提供的http://cdnjs.com中引用JS,而不去直接引用github的JS,就不会把github搞瘫了)。将JS、CSS合并,最小化请求数。将JS和CSS压缩,最小化数据传输启用gzip压缩网页。2) 群集分发和调度据说12306是采用集中式构架的,集中式构架很难应对高并发,也很
阅读全文
摘要:可扩展性方面专家Sean Hull曾发表文章指出实现 可扩展性的五大毒药,最近他又指出了实现 可扩展性的五大致命错误。 一、缓慢的磁盘I/O - RAID 5 -多用户的EBS。RAID 10可以提供良好的数据保护,同时具备良好 的读写性能。RAID 5设计意味着性能差,失败后修复时间长。在AWS上考虑使用预设的IOPS解决IO瓶颈问题。二、使用数据库存储作业队列。数据库看起来很适合存储作业队列,但是轻负载的锁定以及日常的扫描 工作都会影响性能。使用类似RabbitMQ和SQS的专业软件可以消除这个瓶颈。三、使用全文搜索。搜索似乎是数据库另一个完美的特性。但是大规模的搜索性能并不高,最好使用类
阅读全文