自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Robin Hu的专栏

独立之精神,自由之思想

  • 博客(60)
  • 资源 (1)
  • 收藏
  • 关注

转载 Web网站的几个并发量级

评价一个网站的“大小”,处于视角的不同,有很多种衡量的方法,类似文章数,页面数之类的数据非常明显,也没有什么可以争议的。但对于并发来说,争议非常之多,这里就从一个技术的角度开始,谈谈几个Web网站的数量级。相信很多人谈论一个网站的热度,总免不了会询问日均PV,同时在线人数、注册用户数等运营数据,说实话从技术角度来说,这几个数值没有一个可以放在一起比较的——一个静态网站的PV跟一个SNS类/Web Game网站的PV根本就不是一回事。由于互联网有一个传说中的“3秒定律”,可能当下更多的网站技术指标要求1.

2016-03-31 18:21:57 7643

转载 动态内容缓存技术 CSI,SSI,ESI介绍

原文:http://www.cnphp6.com/archives/58398动态内容缓存技术 CSI,SSI,ESI介绍1.CSI方案CSI (Client Side Includes)通过iframe、javascript、ajax 等方式将另外一个页面的内容动态包含进来。2.SSI方案SSI (Server

2016-03-31 18:00:07 2415

转载 大型网站之存储瓶颈(数据库的水平扩展)

原文:http://blog.jobbole.com/84180/一、简介数据库的水平扩展是指通过增加服务器的方式提升整个存储层的性能。  数据库的水平扩展基本都是基于水平拆分进行的,也就是说数据库的水平扩展是在数据库水平拆分后再进行一次水平拆分,水平扩展的次数也就代表的水平拆分迭代的次数。因此要谈好数据库的水平扩展问题,我们首先要更加细致的分析下水平拆分的方案,当然这里所说的水平拆分

2016-03-31 16:35:43 5623

转载 大型网站存储瓶颈(广义水平拆分)

一、简介淘宝是个大平台,它的交易表里一定是要记下所有商户的交易数据,但是针对单个商家他们只会关心自己的网店的销售数据,这就有一个问题了,如果某一个商家要查询自己的交易信息,淘宝就要从成千上万的交易信息里检索出该商家的交易信息,那么如果我们把所有交易信息放在一个交易表里,肯定有商家会有这样的疑问,我的网店每天交易额不大,为什么我查询交易数据的速度和那些大商家一样慢了?那么我们到底该如何是解决这样

2016-03-30 18:41:23 1539

转载 大型网站之存储瓶颈(狭义水平拆分)

数据库水平拆分简单说来就是先将原数据库里的一张表在做垂直拆分出来放置在单独的数据库和单独的表里后更进一步的把本来是一个整体的表进一步拆分成多张表,每一张表都用独立的数据库进行存储。当表被水平拆分后,原数据表成为了一个逻辑的概念,而这个逻辑表的业务含义需要多张物理表协同完成,因此数据库的表被水平拆分后,那么

2016-03-30 14:21:44 1827

转载 大型网站之存储瓶颈(数据库的垂直拆分)

原文:http://blog.jobbole.com/83768/一、简介数据库的垂直拆分是一个粗粒度的拆分数据,它主要是将原来在一个数据库下的表拆分到不同的数据库里,水平拆分粒度比垂直拆分要更细点,它是将一张表拆到不同数据库里,粒度的粗细也会导致实现技术的难度的也不一样,很明显水平拆分的技术难度要远大于垂直拆分的技术难度。难度意味着投入的成本的增加以及我们需要承担的风险的加大,我们做系统

2016-03-30 11:54:06 3849 1

转载 大型网站之存储瓶颈(综合篇)

原文:http://blog.jobbole.com/83475/一、什么是大型网站首先我们要思考一个问题,什么样的网站才是大型网站,从网站的技术指标角度考虑这个问题人们很容易犯一个毛病就是认为网站的访问量是衡量的指标,懂点行的人也许会认为是网站在单位时间里的并发量的大小来作为指标,如果按这些标准那么像hao123这样的网站就是大型网站了。其实这种网站访问量非常大,并发

2016-03-30 11:53:07 4478

转载 session同步问题

原文:http://blog.jobbole.com/83475/一、简介因为大多数网站在用户使用时候都是要保持用户的状态,具体点就是网站要记住请求是归属到那一个客户端,而这个状态在网站开发里就是通过会话session来体现的。分开部署的web应用服务要解决的一个首要问题就是要保持不同物理部署服务器之间的session同步问题,从而达到当用户第一次请求访问到服务器A,第二个请求

2016-03-29 18:32:07 4870

转载 memcache的一致性hash算法使用

spymemcached是一个memcached的客户端,http://code.google.com/p/spymemcached/它使用了一致性hash算法ketama进行数据存储节点的选择。与常规的hash算法思路不同,只是对我们要存储数据的key进行hash计算,分配到不同节点存储。一致性hash算法是对我们要存储数据的服务器进行hash计算,进而确认每个key的存储位置。

2016-03-29 11:49:29 2877

转载 解释器模式

原文:http://www.cnblogs.com/cbf4life/archive/2009/12/17/1626125.html一、 四则运算你会吗      在银行、证券类项目中,经常会有一些模型运算,通过对现有数据的统计、分析而预测不可知或未来可能发生的商业行为。模型运算大部分是针对海量数据的,例如建立一个模型公式,分析一个城市的消费倾向,进而影响银行的营销和业务扩

2016-03-28 16:31:12 2029

转载 状态模式(State)

原文:http://blog.csdn.net/zhangerqing/article/details/8245537状态模式(State)核心思想就是:当对象的状态改变时,同时改变其行为,很好理解!就拿QQ来说,有几种状态,在线、隐身、忙碌等,每个状态对应不同的操作,而且你的好友也能看到你的状态,所以,状态模式就两点:1、可以通过改变状态来获得不同的行为。2、你的好友能同时看到你的变

2016-03-28 15:35:08 679

转载 备忘录模式(Memento)

原文:http://blog.csdn.net/zhangerqing/article/details/8245537备忘录模式(Memento)主要目的是保存一个对象的某个状态,以便在适当的时候恢复对象,个人觉得叫备份模式更形象些,通俗的讲下:假设有原始类A,A中有各种属性,A可以决定需要备份的属性,备忘录类B是用来存储A的一些内部状态,类C呢,就是一个用来存储备忘录的,且只能存储,

2016-03-28 15:32:49 560

转载 访问者模式

原文:http://www.cnblogs.com/java-my-life/archive/2012/06/14/2545381.html访问者模式是对象的行为模式。访问者模式的目的是封装一些施加于某种数据结构元素之上的操作。一旦这些操作需要修改的话,接受这个操作的数据结构则可以保持不变。一、分派的概念  变量被声明时的类型叫做变量的静态类型(Static Typ

2016-03-25 18:39:59 927

转载 命令模式(Command)

原文:http://blog.csdn.net/zhangerqing/article/details/8243942命令模式很好理解,举个例子,司令员下令让士兵去干件事情,从整个事情的角度来考虑,司令员的作用是,发出口令,口令经过传递,传到了士兵耳朵里,士兵去执行。这个过程好在,三者相互解耦,任何一方都不用去依赖其他人,只需要做好自己的事儿就行,司令员要的是结果,不会去关注到底士兵是

2016-03-25 17:15:34 648

转载 迭代子模式(Iterator)

原文:http://blog.csdn.net/zhangerqing/article/details/8243942顾名思义,迭代器模式就是顺序访问聚集中的对象,一般来说,集合中非常常见,如果对集合类比较熟悉的话,理解本模式会十分轻松。这句话包含两层意思:一是需要遍历的对象,即聚集对象,二是迭代器对象,用于对聚集对象进行遍历访问。我们看下关系图: 这个思路和我们常用的

2016-03-25 17:12:47 2837

转载 观察者模式(Observer)

原文:http://blog.csdn.net/zhangerqing/article/details/8243942观察者模式很好理解,类似于邮件订阅和RSS订阅,当我们浏览一些博客或wiki时,经常会看到RSS图标,就这的意思是,当你订阅了该文章,如果后续有更新,会及时通知你。其实,简单来讲就一句话:当一个对象变化时,其它依赖该对象的对象都会收到通知,并且随着变化!对象之间是一种一

2016-03-25 17:08:40 914

转载 责任链模式

原文:http://www.cnblogs.com/draem0507/p/3784130.html责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织和分配责任。

2016-03-25 16:55:30 531

原创 模板方法模式与策略模式的区别

原文:http://www.tuicool.com/articles/6JBN7z3一、主要思想和意图的区别如果你还不了解模板方法模式和策略模式,请先阅读《策略模式(strategy)》和《模板方法模式》模板方法模式的主要思想:定义一个算法流程,将一些特定步骤的具体实现、延迟到子类。使得可以在不改变算法流程的情况下,通过不同的子类、来实现“定制”流程中的特定的步骤。

2016-03-25 13:57:06 11168

转载 模板方法模式

原文:http://www.cnblogs.com/java-my-life/archive/2012/05/14/2495235.htm模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。

2016-03-25 11:21:02 2002

转载 策略模式(strategy)

原文:http://www.cnblogs.com/java-my-life/archive/2012/05/10/2491891.html策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。策略模式的结构  策略模式是对算法的包装,是把使用

2016-03-25 10:46:49 1702

转载 享元模式(Flyweight)

原文:http://blog.csdn.net/zhangerqing/article/details/8239539享元模式的主要目的是实现对象的共享,即共享池,当系统中对象多的时候可以减少内存的开销,通常与工厂模式一起使用。FlyWeightFactory负责创建和管理享元单元,当一个客户端请求时,工厂需要检查当前对象池中是否有符合条件的对象,如果有,就返回已经存在的对

2016-03-24 15:33:16 602

转载 组合模式(Composite)

原文:http://blog.csdn.net/zhangerqing/article/details/8239539组合模式有时又叫部分-整体模式在处理类似树形结构的问题时比较方便,看看关系图:组合模式(Composite Pattern)有时候又叫做部分-整体模式,它使我们树型结构的问题中,模糊了简单元素和复杂元素的概念  ,客户程序可以向处理简单元素一样来处理

2016-03-24 15:29:40 737

转载 桥接模式(Bridge)

桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化。桥接的用意是:将抽象化与实现化解耦,使得二者可以独立变化,像我们常用的JDBC桥DriverManager一样,JDBC进行连接数据库的时候,在各个数据库之间进行切换,基本不需要动太多的代码,甚至丝毫不用动,

2016-03-24 14:22:56 863

转载 外观模式(Facade)

原文:http://blog.csdn.net/zhangerqing/article/details/8239539外观模式是为了解决类与类之家的依赖关系的,像spring一样,可以将类和类之间的关系配置到配置文件中,而外观模式就是将他们的关系放在一个Facade类中,降低了类类之间的耦合度,该模式中没有涉及到接口,看下类图:(我们以一个计算机的启动过程为例)我们先看下实

2016-03-24 14:19:39 637

转载 代理模式(Proxy)

原文:http://blog.csdn.net/zhangerqing/article/details/8239539其实每个模式名称就表明了该模式的作用,代理模式就是多一个代理类出来,替原对象进行一些操作,比如我们在租房子的时候回去找中介,为什么呢?因为你对该地区房屋的信息掌握的不够全面,希望找一个更熟悉的人去帮你做,此处的代理就是这个意思。再如我们有的时候打官司,我们需要请律师,因为律

2016-03-24 14:15:33 5608

转载 装饰模式(Decorator)

原文:http://blog.csdn.net/zhangerqing/article/details/8239539装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例,关系图如下:Source类是被装饰类,Decorator类是一个装饰类,可以为Source类动态的添加一些功能,代码如下:

2016-03-24 14:11:05 734

转载 适配器模式(Adapter)

原文:http://blog.csdn.net/zhangerqing/article/details/8239539适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题。主要分为三类:类的适配器模式、对象的适配器模式、接口的适配器模式。首先,我们来看看类的适配器模式,先看类图:核心思想就是:有一个Source类,拥有

2016-03-24 13:56:34 685

转载 原型模式(Prototype)

原型模式的思想就是将一个对象作为原型,对其进行复制、克隆,产生一个和原对象类似的新对象。在Java中,复制对象是通过clone()实现的,先创建一个原型类:[java] view plain copypublic class Prototype implements Cloneable {        public Object clone

2016-03-23 18:37:23 802

转载 建造者模式(Builder)

工厂类模式提供的是创建单个类的模式,而建造者模式则是将各种产品集中起来进行管理,用来创建复合对象,所谓复合对象就是指某个类具有不同的属性,其实建造者模式就是前面抽象工厂模式和最后的Test结合起来得到的。我们看一下代码:还和前面一样,一个Sender接口,两个实现类MailSender和SmsSender。最后,建造者类如下:[java] view plain copy

2016-03-23 18:34:38 772

转载 抽象工厂模式

简单工厂模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则,所以,从设计角度考虑,有一定的问题,如何解决?就用到抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。因为抽象工厂不太好理解,我们先看看图,然后就和代码,就比较容易理解。请看例子:[java] v

2016-03-23 18:32:15 807

转载 JAVA的23种设计模式

设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化

2016-03-23 18:01:11 2695 2

转载 Ajax缓存原理

原文:http://www.lingdublog.com/123.html一、什么是Ajax缓存原理Ajax在发送的数据成功后,会把请求的URL和返回的响应结果保存在缓存内,当下一次调用Ajax发送相同的请求时,它会直接从缓存中把数据取出来,这是为了提高页面的响应速度和用户体验。当前这要求两次请求URL完全相同,包括参数。这个时候,浏览器就不会与服务器交互。关于Ajax

2016-03-23 15:25:46 12970

转载 Ajax简介

原文:http://blog.csdn.net/missysm586/article/details/8034241http://blog.csdn.net/missysm586/article/details/8090100一、Ajax概述  Ajax的全称是Asynchronous JavaScript and XML,中文定义为”异步JavaScript和XML”,它是Web

2016-03-23 15:19:36 1156

转载 【Web优化】Yslow优化法则(汇总篇)

一、Make Fewer HTTP Requests (尽可能减少http请求数)http请求是要开销的,减少请求数可以提高网页加载速度。常用的方法,合并css,js以及 Image maps和css sprites等。(css sprites是指只用将页面上的背景图合并成一张,然后通过background-position来取背景。)更多请参考《【Web优化】Yslow优化法则(一)

2016-03-23 14:20:12 2070 1

转载 【Web优化】Yslow优化法则(四)启用Gzip压缩

Yslow的第4个经验法则指出:启用gzip压缩功能,可以减少HTTP传输的数据和时间,从而减少客户端请求的响应时间。本篇是Yslow法则的第四个,主要包括三个方面的内容:1.      什么是gzip2.      gzip与HTTP3.      nginx启用gzip一、什么是gzipGzip最早出现在Unix系统中,是GN

2016-03-23 13:32:56 1829

转载 【Web优化】Yslow优化法则(三)添加缓存控制首部

一.缓存的基本概念这里的缓存系统,单指web的缓存系统。当web请求抵达缓存系统时,如果本地有缓存的副本且缓存未过期,那么就可以从本地读取数据或文档,这样便可以:1. 减少冗余的数据传输,一定程度上减少服务器的流量和压力。2. 缓解了网络瓶颈的问题,不需要更多的带宽就能更快的加载页面。3. 降低了对原始服务器的要求,服务器可以更快的响应,避免过载和峰值访问。4. 降低了因距离带来的时延。

2016-03-23 11:22:40 1231

转载 【Web优化】Yslow优化法则(二)使用CDN

用户离webserver的远近对响应时间也有很大影响。从用户角度看,把内容部署到多个地理位置分散的服务器上将有效提高页面装载速度。但是该从哪里开始呢?  作为实现内容地理分布的第一步,不要试图重构web应用以适应分布架构。改变架构将导致多个周期性任务,如同步session状态,在多个server之间复制数据库交易。这样缩短用户与内容距离的尝试可能被应用架构改版所延迟,或阻止。我们还记得80

2016-03-23 10:58:56 815

转载 【Web优化】Yslow优化法则(一)最小化HTTP请求数

原文:http://blog.csdn.net/ohmygirl/article/details/23948655http://wenku.baidu.com/link?url=qu4WGHW8EUQmzA8xem66RTTLmNZzMymG02K4gexgeDaBVMclDQ5PjgspV8VjO_SBThUuQYkPcrG3NylyYVN01RIz6xe7zfOsq2mlv7kBtxS

2016-03-23 10:46:36 1524

转载 从宜人贷系统架构看互联网高并发对金融系统架构的挑战

一、简介随着互联网金融的持续火热,越来越多的银行纷纷发布了各自的互联网金融产品。但是互联网产品“高并发、大数据量”的特点却对于银行传统的核心系统架构带来了新的挑战。 1、互联网的核心技术特征 当前互联网的核心技术特征主要可以概括为:分布式,易扩展,大量低端设备,底层开源软件。分布式结构可以通过平行扩展来支撑互联网上蜂拥而至的访问客户。同时,基于客户行为分析的大数据平台也需要分布

2016-03-22 17:48:33 16007

转载 客户端IP地址伪造

原文:http://www.cnblogs.com/zhengyun_ustc/archive/2012/09/19/getremoteaddr.html外界流传的JAVA/PHP服务器端获取客户端IP都是这么取的:伪代码:1)ip = request.getHeader("X-FORWARDED-FOR")    可伪造,参考附录A2)如果该值为空或数

2016-03-22 15:38:27 12573

常用汉字unicode和拼音的对应关系

该文件描述了常用汉字unicode和拼音的对应关系

2012-10-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除