武当学艺与缓存代理(转1)
武当学艺与缓存代理...原创
续集和相关内容请见:http://blog.joycode.com/peon/articles/16504.aspx
话说武当山上,张三丰老道开创武当一派,收了七个弟子,分别是:宋远桥、俞莲舟、俞岱岩、张松溪、张翠山、殷梨亭、莫声谷七人,号称武当七侠。七弟 子中,宋远桥是掌门,精研易理,同时对于相面算命很有研究。俞莲舟武功最强,太极拳很厉害,殷梨亭擅长剑术,其他弟子也各有所长。
张三丰常年闭关,钻研武学,而这七个弟子又收了一些弟子,其中宋远桥的儿子宋青书是武当第三代弟子中的佼佼者。
依照武当的规矩,各个弟子(Client)可以向七位师傅(Server)讨教,可以把练功中的疑难写在纸上(Request),送到各位师父的住处,然后由各个师傅解答(Response)。
这种关系,就是最直接的服务器-客户机关系。
但是,这样存在一些问题,武当七侠住在不同的地方,有的地方很艰险,不是所有的弟子都可以到达的,这样,宋远桥就叫宋青书跑腿(Proxy
Server),每个弟子只要知道宋青书的住处(设定代理地址),把疑难写在纸条上,再写上要请教的师父的姓名,再交给宋青书,就可以了。宋青书将纸条转
交给七侠之一,将答复的纸条给各个弟子。
对于宋青书而言,各个弟子向他投递纸条,由他转交各位师父,在这种关系里,宋青书相当于师父
(Server),各位弟子是徒弟(Client),然后宋青书向七侠请教,这种关系里,宋青书是Client,七侠是Server,中间的过程,就叫代
理(Proxy),宋青书就相当于代理服务器。
这种代理关系里面,各个弟子需要知道宋青书的地址(设定代理地址),这种关系叫做显式代理(Explicit Proxy),IE,MediaPlayer都可以设置代理。
经过一段时间,各个弟子也觉得这种方法虽然避免了很多的麻烦,但是很慢。宋青书也对这种跑腿的事情感到厌烦,他发现大多数人问的问题集中在几个问题 上(80%的访问集中在20%的内容上),于是,宋青书就把这几个问题的答案记在自己的IBM笔记本上(缓存),以后凡是弟子们问到这几个问题,宋青书不 需要再去问七侠,直接找出答案回复给各个弟子,这样各个弟子得到答复的速度快多了,武当七侠也有更多的时间干点其他事情(减轻了Server的负担)。宋 青书的脑袋比较灵活,他还写了个程序,统计各个问题被问到的频率,随时记下新的热门问题,淘汰不再热门的问题(缓存替换算法)。
过了一段时间,宋远桥偷偷告诉宋青书,说准备把他作为掌门继承人,让他好好表现。宋青书于是改变工作作风,不再让各个弟子把纸条交给他,而是跑来跑 去收集纸条,交给武当七侠。很多新弟子只是知道把纸条写好放在门口,自然会得到武当七侠的指导,大家都忘了宋青书干的这份事情,但是张三丰老道对宋青书可 是十分的赞赏,立他为武当掌门继承人。
这种关系,叫做隐式代理(Implicit Proxy),客户意识不到代理服务器的存在,也不需要设定代理服务器的地址,但是客户请求和服务器回应都会经过代理服务器,对于客户而言,代理服务器是透明的(transparent)。
续集: http://blog.joycode.com/peon/archive/2004/03/21/16756.aspx转自:http://blog.joycode.com/peon/archive/2004/03/08/15171.aspx