接下來發(fā)生了一些事情,張翠山夫婦雙雙自盡,他們的兒子張無忌又被打傷,張三豐和武當(dāng)諸俠都忙于給張無忌療傷,無暇顧及各自弟子的武學(xué),而且為了諸俠和張老道的安全,給他們的問題不再直接交到他們手里,每人選了一個(gè)得意的弟子,代替自己解答問題,這些弟子的記憶力和反應(yīng)都不錯(cuò),可以解答大部分的問題,假如遇到不會(huì)的問題,就先向師父請教,然后回答給提問題的弟子,這樣不僅大大減輕了諸俠的負(fù)擔(dān),而且防止了一些危險(xiǎn),比如在在便條上下毒,保護(hù)了諸俠的安全(徒弟的命就不值錢了?)。
在這種關(guān)系里,武當(dāng)諸俠和他們的代理弟子構(gòu)成了反向代理(Reverse Proxy)的關(guān)系,反向代理一般作用有三:減輕源服務(wù)器負(fù)載,保障源服務(wù)器安全,對源服務(wù)器進(jìn)行負(fù)載均衡(Load Balance)。
一般反向代理置于源服務(wù)器的前端,配備大容量的內(nèi)存和高速磁盤,緩存客戶的請求,所以反向代理又稱為服務(wù)器加速(Server accelerate)。源服務(wù)器一般不再和客戶直接通訊,當(dāng)客戶請求沒有緩存的內(nèi)容或者動(dòng)態(tài)內(nèi)容時(shí),反向代理向源服務(wù)器發(fā)送請求,然后把回應(yīng)轉(zhuǎn)發(fā)給客戶,在這種情況下,反向代理服務(wù)器通常要為一個(gè)請求同時(shí)維護(hù)兩個(gè)會(huì)話。和普通的代理不同,反向代理一般只代理一臺(tái)或者有限的幾臺(tái)服務(wù)器,對于客戶而言,反向代理服務(wù)器對于他們就相當(dāng)于源服務(wù)器,對于源服務(wù)器而言,反向代理服務(wù)器通常就是唯一的客戶,因?yàn)橐话憧蛻舨缓驮捶?wù)器直接通信。典型情況下,源服務(wù)器對于客戶或者客戶對于源服務(wù)器,都是不可見的。
過了一段時(shí)間,張三豐覺得無法根治張無忌的體內(nèi)的玄冥寒氣,決定帶他下山到少林寺去碰碰運(yùn)氣,為了讓請教張三豐的弟子不至于得不到解答,宋遠(yuǎn)橋和俞蓮舟暫時(shí)代替張三豐答題,凡是有請教張三豐的問題,宋青書就輪流送到宋遠(yuǎn)橋或者俞蓮舟的住所。
張老道不在山上,可是他負(fù)責(zé)的服務(wù)不會(huì)中斷,這種情況可以稱為離線緩存(Offline Caching),宋青書的所作的相當(dāng)于把一個(gè)域名交替解析到兩個(gè)或者以上的地址上去,這個(gè)就是DNS輪詢。
張三豐所學(xué)太過淵博,單憑宋或者俞任何一人都難以回答所有的問題,兩個(gè)人的知識(shí)加起來才可以勉強(qiáng)做到,但是宋青書卻有時(shí)候把宋遠(yuǎn)橋不會(huì)的問題送到宋遠(yuǎn)橋那里,俞蓮舟也常常遇到這種尷尬(說明宋青書到底還是少了根筋)。這兩位到底是高人,一合計(jì),決定視情況采取以下三種辦法之一:
1.假如宋遠(yuǎn)橋收到自己不會(huì)的,就寫回復(fù)說自己很忙,而且這個(gè)問題俞蓮舟很有研究,叫弟子另外寫紙條問俞蓮舟,俞也是如此這般。
2.宋遠(yuǎn)橋把紙條給俞蓮舟解答,然后自己把解答給弟子。
3.宋遠(yuǎn)橋把紙條給俞蓮舟解答,俞把解答給弟子。
第一種方法稱為內(nèi)容轉(zhuǎn)向(URL Redirection),就是當(dāng)服務(wù)器發(fā)送給客戶端一個(gè)特殊回應(yīng)和新的URL,表示客戶應(yīng)該在其他的地方取得內(nèi)容,然后客戶向新的URL提出請求以獲取內(nèi)容,很多的協(xié)議都支持,開發(fā)過web的人對redirection和302 code應(yīng)該都很熟悉。
第二種方法中,問問題的弟子,宋遠(yuǎn)橋,俞蓮舟,還有張三豐構(gòu)成了多重代理關(guān)系,宋相當(dāng)于俞的反向代理,俞又是張三豐的反向代理。這個(gè)過程,對客戶是完全不可見的。
第三種方法稱為三角傳輸,宋,俞,弟子的請求應(yīng)答構(gòu)成了一個(gè)三角形,這種方式中,客戶向A服務(wù)器發(fā)起請求,A服務(wù)器把請求轉(zhuǎn)發(fā)到B服務(wù)器,然后根據(jù)客戶的控制由B服務(wù)器向客戶發(fā)送內(nèi)容。
這三種方式各有優(yōu)缺點(diǎn),內(nèi)容轉(zhuǎn)向比較靈活,但是需要應(yīng)用協(xié)議的支持(目前HTTP,MMS,RTSP支持),而且轉(zhuǎn)向次數(shù)一般有限制。多重代理構(gòu)造復(fù)雜,而且因?yàn)榇硇枰S持雙倍的會(huì)話,服務(wù)器負(fù)擔(dān)很重。三角傳輸適合于請求流量小而回應(yīng)內(nèi)容流量多(比如流媒體)的情況,但是需要特殊網(wǎng)絡(luò)設(shè)備(radware wsd)的支持,某些情況下,三角傳輸?shù)那岸诉€易于成為瓶頸。