版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、GemFire高負(fù)載架構(gòu)設(shè)計(jì)GemFire如何應(yīng)對(duì)電商或移動(dòng)APP平臺(tái)的高負(fù)載挑戰(zhàn)拆分應(yīng)用互聯(lián)數(shù)據(jù)Web Server與GemFire進(jìn)行集成Memcached、Redis與GemFire進(jìn)行集成GemFire利用HDFS進(jìn)行日志保存和處理議題大規(guī)模擴(kuò)展分布式緩存系統(tǒng)借用FaceBook 的架構(gòu)方式, 將頁(yè)面的訪問(wèn) 進(jìn)行拆分,保 存數(shù)據(jù)到多個(gè) 緩存集群中應(yīng)用間互聯(lián)數(shù)據(jù)拆分主頁(yè)和其他頁(yè)面的點(diǎn)擊訪問(wèn)數(shù)據(jù)不保存在單臺(tái)服務(wù)器上,保存于多臺(tái)服務(wù)器集群中跨所有集群的服務(wù)器快速拉取數(shù)據(jù)到前端頁(yè)面應(yīng)用大并發(fā)查詢數(shù)據(jù)為了在數(shù)據(jù)并發(fā)操作的情況下獲得良好的性能,需要并行地轉(zhuǎn)發(fā)get請(qǐng)求切換到異步 I/O 進(jìn)行訪問(wèn)不
2、同的Object有不同的大小和訪問(wèn)方式。構(gòu)建memcached pools拆 分不同的objects類(lèi)型,達(dá)到高效的內(nèi)存利用率解決前端連接擁塞問(wèn)題web服務(wù)器連接到memcache服務(wù)器每個(gè)web 服務(wù)器運(yùn)行50-100個(gè)進(jìn)程每個(gè)memcache有100K+ TCP 連接(UDP 能夠減少連接數(shù)量)使用gzcompress壓縮序列化的字符串 Web Server 與 GemFire 集成Web服務(wù)器+GemFire 客戶端GemFire服務(wù)器1. GemFire采用C/S架構(gòu)與Web Server進(jìn)行交互,將GemFire客戶端嵌入到 Web Server中,Web App 從GemFire客
3、戶端讀寫(xiě)數(shù)據(jù),然后客戶端將讀寫(xiě) 操作同步給GemFire Server Web Server 與 GemFire 集成Web服務(wù)器+GemFire 客戶端GemFire服務(wù)器2.GemFire 客戶端通過(guò)協(xié)調(diào)器來(lái)連接合適的GemFire服務(wù)器,當(dāng)建立連接 之后,客戶端便可以直接與服務(wù)器進(jìn)行交互GemFire 協(xié)調(diào)器 Web Server 與 GemFire 集成Web服務(wù)器+GemFire 客戶端Web服務(wù)器+GemFire 客戶端GemFire服務(wù)器GemFire 服務(wù)器集中式數(shù)據(jù)庫(kù)GemFire 服務(wù)器Web服務(wù)器+GemFire 客戶端GemFire 服務(wù)器Web服務(wù)器+GemFire
4、客戶端GemFire 協(xié)調(diào)器GemFire 協(xié)調(diào)器3.GemFire 協(xié)調(diào)器采用HA高可用架構(gòu),防止協(xié)調(diào)器宕機(jī)導(dǎo)致客戶端與服務(wù)器之間連接出現(xiàn)故 障,GemFire集群整體架構(gòu)如下:傳統(tǒng)memcache分布式集群主要靠客戶端程序庫(kù)實(shí)現(xiàn),”服務(wù)端”沒(méi)有分 布式當(dāng)memcache集群環(huán)境發(fā)生變化時(shí),如加入、離開(kāi)節(jié)點(diǎn)會(huì)嚴(yán)重影響緩存 的命中率Memcached大規(guī)模集群擴(kuò)展OSPHP APPMemcacheOSWinPHP APPMemcachePHP APPMemcacheMagentMagent使用一致性哈希 分配值到memcache節(jié)點(diǎn)GemFire 嵌入 Gemcache服務(wù)器與memcache
5、客戶端進(jìn)行交互,將 形成與memcache類(lèi)似的動(dòng)態(tài)分布式緩存集群,實(shí)現(xiàn)memcache應(yīng)用 與GemFire聯(lián)動(dòng)Memcached大規(guī)模集群擴(kuò)展OSJVMGemFireGemCacheGemFire OSOSJVMGemFireOSPHP APPOSWinPHP APPPHP APP遷移動(dòng)機(jī): memcached 最根本的問(wèn)題在與它僅支持”cache-aside”,應(yīng)用 既負(fù)責(zé)更新緩存和也負(fù)責(zé)更新數(shù)據(jù)庫(kù)。其結(jié)果是:-會(huì)導(dǎo)致緩存和DB數(shù)據(jù)出現(xiàn)不一致的風(fēng)險(xiǎn)-破壞每個(gè)應(yīng)用的業(yè)務(wù)邏輯Memcached遷移至GemFirePHP APPMemcacheOS 目前大多互聯(lián)網(wǎng)應(yīng)用前端內(nèi)容更新地非??臁.?dāng)這
6、臺(tái)服務(wù)器出現(xiàn)故 障后,所有的客戶端請(qǐng)求服務(wù)器將得到緩存丟失錯(cuò)誤,那么所有的 客戶端都向數(shù)據(jù)庫(kù)訪問(wèn)數(shù)據(jù),數(shù)據(jù)庫(kù)有被瞬間壓癱的風(fēng)險(xiǎn)。有效避免驚群效應(yīng)PHP APPOSOSGemFireGemCacheOSGemFireGemCacheWinGemFireGemCacheMemcached 客戶端使用Memcached API連接GemCache,實(shí)現(xiàn)讀寫(xiě)GemFire中的數(shù)據(jù),維護(hù)著一個(gè)GemCache服務(wù)器的列表。有效避免驚群效應(yīng)PHP APPOSOSGemFireGemCacheOSGemFireGemCacheOSGemFireGemCacheDB前端應(yīng)用不再直接與DB交互,簡(jiǎn)化了應(yīng)用代碼。
7、所有的數(shù)據(jù)庫(kù)都通 過(guò)GemFire來(lái)讀寫(xiě)數(shù)據(jù)。為了從DB 中讀取數(shù)據(jù),你能夠使用GemFireCacheLoader,同時(shí)可以使用AsyncEventListener將數(shù)據(jù)寫(xiě)回到DB中。有效避免驚群效應(yīng)PHP APPOSOSGemCacheGemFireDBCacheLoaderAsyncEventListener寫(xiě) 入 到DB回 寫(xiě) 到CacheMemcached API 客戶端只寫(xiě)到GemFire,當(dāng)寫(xiě)入完成時(shí),GemFire 將保障寫(xiě)入已經(jīng)同步到 了冗余的副本。在同步到冗余副本之前,即使主bucket死掉,其他客戶 端和數(shù)據(jù)庫(kù)都不會(huì)看到數(shù)據(jù)更新。有效避免驚群效應(yīng)PHP APPOSOSGe
8、mFireGemCacheOSGemFireGemCacheMasterSlave副本同步 來(lái)自客戶端的所有數(shù)據(jù)更新最初先進(jìn)入到GemFire,然后持久化到DB, 它們經(jīng)常是一致的。所有更新進(jìn)入DB,即時(shí)在這種情況下GemFire節(jié)點(diǎn) 出現(xiàn)故障失效,AsyncEventListener隊(duì)列將同步,保證數(shù)據(jù)也是一致的。數(shù)據(jù)一致性保證PHP APPOSGemFireOSGemCache異步隊(duì)列 Memcache 客戶端能夠使用兩種協(xié)議與GemFire 服務(wù)器進(jìn)行通信,客戶 端應(yīng)用不需要改動(dòng)任何代碼。WIRE 協(xié)議:ACSII 或 BINARY交互協(xié)議配置PHP APPOSGemFireOSGemC
9、ache異步隊(duì)列Single DC ClusterOSPHP APPOSGemFireGemCacheOSGemFireGemCacheMasterSlaveOSPHP APPFail Over并發(fā)I/O流控故障切換整流Multi DC ClusterOSPHP APPOSGemFireGemCacheOSGemFireGemCacheGemFireGatewayOSPHP APPOSGemFireGemCacheOSGemFireGemCacheGemFireGateway數(shù)據(jù)同步站點(diǎn)1站點(diǎn)2GemCache的優(yōu)勢(shì)高可擴(kuò)展性:GemCache 可以自動(dòng)添加節(jié)點(diǎn)到集群中,Memcache 客戶
10、端不需要維護(hù)服務(wù)器列表。一 個(gè)Memcache 客戶端需要訪問(wèn)多份保存在多個(gè)節(jié)點(diǎn)的數(shù)據(jù),導(dǎo)致服務(wù)器對(duì)每個(gè)客戶端都建立TCP連接,而Memcache 客戶端只需要連接一個(gè)GemCache 服務(wù)器即可, 大幅減小TCP連接數(shù)。數(shù)據(jù)一致性:Memcache客戶端須維護(hù)一個(gè)服務(wù)器列表,一旦某客戶端的列表不正確,則給客戶端返 回的臟數(shù)據(jù)。HA高可用:當(dāng)一個(gè)Memcache服務(wù)器掛掉后,會(huì)導(dǎo)致Memcache 集群故障或性能降級(jí),客戶端直連 后端DB。所有故障處理都必須應(yīng)用來(lái)做,而GemFire可自動(dòng)解決這一問(wèn)題。集群熱啟動(dòng):當(dāng)一個(gè)Memcache集群故障后,數(shù)據(jù)必須重新加載和分布到各集群成員,而GemC
11、ache可以從其他節(jié)點(diǎn)或本地磁盤(pán)加載數(shù)據(jù),大幅節(jié)省時(shí)間消耗。斷網(wǎng)處理:幾百臺(tái)Memcache集群部署,由于網(wǎng)絡(luò)故障,客戶端不可能連接所有的節(jié)點(diǎn),必須從數(shù) 據(jù)庫(kù)拉取數(shù)據(jù),避免出現(xiàn)臟數(shù)據(jù)。而GemCache自身能夠處理斷網(wǎng)情況,保障響應(yīng)數(shù)據(jù)的一致性。GemFire與Redis在Apache Geode工程中,GemFire 目前正在與Redis做集成。工程地址為:/apache/incubator-geode/tree/a781843b160de7b751b8d32990a163fe31ef798c/geode- core/src/main/java/com/gemstone/gemfire/re
12、disGemFire與Redis在GemFire 內(nèi)核中,新添加一個(gè)GemFireRedisServer服務(wù)器,此服務(wù)器可以解析Redis 協(xié)議,當(dāng)有命令 發(fā)送到這個(gè)服務(wù)器上時(shí),每個(gè)命令都會(huì)被中斷、執(zhí)行并響應(yīng)給客戶端。默認(rèn)的連接端口為6379,也可以修改為其他端口。每個(gè)Redis 數(shù)據(jù)類(lèi)型(String和HyperLogLog)都會(huì)被保存在單獨(dú)的Region中,默認(rèn)的Region類(lèi)型為 RegionShortcut#PARTITION。在執(zhí)行事務(wù)時(shí),事務(wù)只能作用在本地,或開(kāi)啟事務(wù)處理的持久化Region。另外,默認(rèn)情況下看不到Key 鍵(在GemFire 事務(wù)中是能夠看到的)GemFire與R
13、edisGemFire支持Redis命令如下:命令類(lèi)型命令內(nèi)容String命令A(yù)PPEND, BITCOUNT, BITOP, BITPOS, DECR, DECRBY, GET, GETBIT, GETRANGE, GETSET, INCR, INCRBY, INCRBYFLOAT, MGET, MSET, MSETNX,PSETEX, SET, SETBIT, SETEX, SETNX, STRLENList命令LINDEX, LLEN, LPOP, LPUSH, LPUSHX, LRANGE,LREM, LSET, LTRIM, RPOP, RPUSH, RPUSHXHash命令HDEL
14、, HEXISTS, HGET, HGETALL, HINCRBY, HINCRBYFLOAT,HKEYS, HMGET, HMSET, HSETNX, HLEN, HSCAN, HSET, HVALSSet命令SADD, SCARD, SDIFF, SDIFFSTORE, SINTER,SINTERSTORE, SISMEMBER, SMEMBERS, SMOVE, SREM, SPOP, SRANDMEMBER, SCAN, SUNION, SUNIONSTORESortedSet命令ZADD, ZCARD, ZCOUNT, ZINCRBY, ZLEXCOUNT,ZRANGE, ZRANG
15、EBYLEX, ZRANGEBYSCORE, ZRANK, ZREM, ZREMRANGEBYLEX, ZREMRANGEBYRANK, ZREMRANGEBYSCORE, ZREVRANGE, ZREVRANGEBYSCORE, ZREVRANK,ZSCAN, ZSCOREHyperLogLog命令PFADD, PFCOUNT, PFMERGEKeys 命令DEL, DBSIZE, EXISTS, EXPIRE, EXPIREAT, FLUSHDB, FLUSHALL, KEYS, PERSIST, PEXPIRE, PEXPIREAT, PTTL, SCAN, TTLTranaction 命令DISCARD, EXEC, MULTI GemFire利用HDFS進(jìn)行日志處理GemFire在生產(chǎn)環(huán)境
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024新媒體內(nèi)容版權(quán)授權(quán)與保護(hù)合作協(xié)議2篇
- 2024年標(biāo)準(zhǔn)土地共同開(kāi)發(fā)合同版
- 2023-2024學(xué)年高中信息技術(shù)選擇性必修1(浙教版2019)數(shù)據(jù)與數(shù)據(jù)結(jié)構(gòu)-說(shuō)課稿-5.4-數(shù)據(jù)查找
- 2024提高教育資源共享傳播能力采購(gòu)合同3篇
- 2024數(shù)碼相機(jī)租賃與體育賽事轉(zhuǎn)播合同范本3篇
- 高血壓健康宣教
- 專(zhuān)業(yè)車(chē)輛租賃協(xié)議:2024經(jīng)典版式版
- 職業(yè)學(xué)院學(xué)生外出活動(dòng)安全承諾書(shū)
- 2024志愿服務(wù)協(xié)議書(shū)
- 個(gè)人最高額抵押融資協(xié)議樣本(2024版)版B版
- 民間借貸利息計(jì)算表
- 酒店保潔服務(wù)投標(biāo)方案(技術(shù)方案)
- 《白描花卉妙筆生》 課件 2024-2025學(xué)年嶺南美版(2024) 初中美術(shù)七年級(jí)上冊(cè)
- 2025年公務(wù)員考試申論試題與參考答案
- 2024年秋季新人教PEP版三年級(jí)上冊(cè)英語(yǔ)全冊(cè)教案
- 蘇教版四年級(jí)上冊(cè)四則混合運(yùn)算練習(xí)200道及答案
- 2024耐張線夾技術(shù)規(guī)范
- 2024年中考英語(yǔ)語(yǔ)法感嘆句100題精練
- 《海洋與人類(lèi)》導(dǎo)學(xué)案
- 挑戰(zhàn)杯紅色賽道計(jì)劃書(shū)
- 第十五屆全國(guó)石油和化工行業(yè)職業(yè)技能競(jìng)賽(化工總控工)考試題庫(kù)-上(單選題)
評(píng)論
0/150
提交評(píng)論