日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

SNA架構(gòu)的幾種實(shí)現(xiàn)方式

 bylele 2014-01-13
     參考資料:
Shared Nothing Architecture與PHP的童話
Shared Nothing Architecture

   以往集群架構(gòu)都采用Session共享模式進(jìn)行設(shè)計(jì),而后PHP等方面提出了SNA架構(gòu),主張Session不共享。SNA架構(gòu)思想,無論對(duì)企業(yè)應(yīng)用還是大型互聯(lián)網(wǎng)站,極大提高了web應(yīng)用的吞吐量和性能。
   一般SNA架構(gòu)以集成分布式Cache例如 memcached 的方案居多,此處姑且稱為 Cache模式。


   我結(jié)合公司電信項(xiàng)目的情況,以及思考,總結(jié)另一種方案,供參考。
   SNA思想的關(guān)鍵就是每個(gè)集群內(nèi)web server實(shí)例不互相共享session,Cache模式主張session數(shù)據(jù)都放到分布式緩存中,意味著,邏輯上集群內(nèi)還是要共享session信息;這種考慮源于負(fù)載均衡時(shí),同一個(gè)IP發(fā)來的兩個(gè)請(qǐng)求,可能走到不同的 Web Server上。

   因此,只要同一IP的兩個(gè)請(qǐng)求轉(zhuǎn)發(fā)到同一個(gè) Web  server實(shí)例,那么就可以不需要全局的 session信息緩存。
   1) 我所在的移動(dòng)項(xiàng)目下,采用 F5硬件負(fù)載均衡器,使用IP記憶機(jī)制實(shí)現(xiàn)了這一點(diǎn)。因此,各 web server實(shí)例的session無需共享,仍然保存在自己的session內(nèi)存中,節(jié)省了網(wǎng)絡(luò)開銷和Cache命中查找時(shí)間。
   F5很貴,因此對(duì)于網(wǎng)站一般負(fù)擔(dān)不起,但可以采用軟件負(fù)載來做到這一點(diǎn)。

   切分模式的SNA架構(gòu):
   2) IP Memory(IP記憶):負(fù)載服務(wù)器記錄 客戶端IP -> ServerID 的關(guān)系,模擬F5;
   3) (Dispatch by Rule)按規(guī)則轉(zhuǎn)發(fā):IP記憶需要維護(hù)一張路由table, 因此,需要消耗一定內(nèi)存,以及映射關(guān)系查找的時(shí)間;
      我們將客戶端的所有IP看作一個(gè)集合 IP Set,按固定規(guī)則將其平均分配集群的server實(shí)例上去,這樣就可以節(jié)省路由table的開銷。 關(guān)鍵是分配算法,可以考慮的有:
      2.1) 簡單數(shù)值法: IP各節(jié)加總 = X, 假定集群實(shí)例個(gè)數(shù)為 N,編號(hào)1-N, 那么每次請(qǐng)求選擇的目標(biāo)server id = X mod N。
      2.2) hash值法: 有的系統(tǒng)可能想基于 userid 進(jìn)行請(qǐng)求分配, 那么可以采用 X = hashCode(userid), serverID = X mod N;
      具體情況下, 可以靈活選擇使用那個(gè)數(shù)據(jù)項(xiàng)判斷請(qǐng)求分配的邏輯。這個(gè)思想?yún)⒖剂?nbsp; memcached 的集群管理思想。
   

   4) stickySession方式。
      一般apache等采用這種方式做負(fù)載均衡。但必須結(jié)合 jvmRoute。 第一次被分配的 web server必須返回一個(gè) jvmRoute在response中,并由 apache 送到客戶端瀏覽器,第二次請(qǐng)求發(fā)起時(shí),request信息中將包含 JSESSIONID 和 對(duì)應(yīng)的 jvmRoute, apache根據(jù)次找到對(duì)應(yīng)的 server,完成 stickySession機(jī)制。


結(jié)論: 切分模式的SNA架構(gòu),基于規(guī)則進(jìn)行請(qǐng)求轉(zhuǎn)發(fā),可以省去分布式Cache的使用,更進(jìn)一步的提升系統(tǒng)吞吐量和響應(yīng)性。   

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多