溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

TcaplusDB常見問題有哪些

發(fā)布時間:2022-01-07 09:05:29 來源:億速云 閱讀:98 作者:iii 欄目:數(shù)據(jù)安全

本篇內(nèi)容介紹了“TcaplusDB常見問題有哪些”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

gameserver 如何剔除某個無效的 tcaproxy(接入層)節(jié)點(diǎn)?

TcaplusDB API 在這里對 tcaproxy 異常做了容災(zāi)的處理,API 剔除無效的 tcaproxy 進(jìn)程的方式主要有2個:

  1. API 物理上認(rèn)為某個 tcaproxy 不可用,API 每隔1秒對起鏈接的所有的 tcaproxy 發(fā)送心跳檢測包,如果某個 gameserver 在10s內(nèi)沒有從 tcaproxy 收到相應(yīng)的心跳回包,則 API 會主動斷開與 tcaproxy 的 TCP 鏈接, 在下個 onupdate 時主動去鏈接該 tcaproxy 。

  2. API 邏輯上認(rèn)為 tcaproxy 不可用,是每隔10s去計算下某個 tcaproxy 的請求和響應(yīng)比,作為判斷依據(jù),其中 API 為某個請求包超時的閾值是3s,大于3次則認(rèn)為該 tcaproxy 不可用,請求不會再發(fā)給該 tcaproxy ,在60s后發(fā)送 getmetdata 請求,如果 tcaproxy 能夠正確處理 getmetadata 的請求,則 API 再次認(rèn)為該 tcaproxy 可用,請求會再次發(fā)送給該 tcaproxy。

從現(xiàn)象上看,gameserver 在10s內(nèi)發(fā)現(xiàn)某個 tcaproxy 不可用,則不會再向該 tcaproxy 節(jié)點(diǎn)發(fā)送數(shù)據(jù)了。

gameserver 是怎么選擇 tcaproxy(接入層)節(jié)點(diǎn)的?

gameserver 本地維護(hù)了一致性的 Hash 環(huán),凡是某個 tcaproxy(接入層)節(jié)點(diǎn)認(rèn)證通過后即增加到 Hash 環(huán)上,如果某個 tcaproxy(接入層)節(jié)點(diǎn)縮容后或者由于機(jī)器異常導(dǎo)致 gameserver 與 tcaproxy(接入層)之間的 TCP 鏈接斷掉后,gameserver 會從 Hash 環(huán)上摘除該 tcaproxy(接入層)節(jié)點(diǎn)。gameserver 根據(jù)請求里的主鍵計算 hash 值(如果是 batchget 請求,會隨機(jī)的選擇單個 tcaproxy(接入層)節(jié)點(diǎn)),然后在一致性 Hash 環(huán)上選擇單個 tcaproxy(接入層)節(jié)點(diǎn)發(fā)送出去。

TcaplusDB 有壓縮功能嗎?

TcaplusDB 有壓縮功能,采用的壓縮算法是 Google snappy 壓縮算法,包括協(xié)議壓縮,即 gameserver <--> tcaproxy(接入層)間的請求包/響應(yīng)包的壓縮功能;數(shù)據(jù)壓縮,即 tcapsvr(存儲層)在數(shù)據(jù)存儲時會壓縮需要存儲的數(shù)據(jù),如果您需要節(jié)省 gameserver <--> tcaproxy 間的網(wǎng)絡(luò)流量,推薦開啟協(xié)議壓縮,調(diào)用 TcaplusDB API 的函數(shù) SetCompressSwitch,推薦您開啟 tcapsvr(存儲層)壓縮,節(jié)省磁盤空間、提高 IO 磁盤性能的同時壓縮、解壓縮耗費(fèi)的 CPU 也是可控的問題。

TcaplusDB API 是線程安全的嗎?

TcaplusDB API 是非線程安全的,主要是 tlog、tdr 等組件是非線程安全的,推薦單個線程采用單個 API 對象,單個游戲區(qū)采用單個 API 對象,如果需要跨游戲區(qū)交互,建議單個 gameserver 維護(hù)多個 API 對象。

tcaproxy(接入層)的容災(zāi)是怎么做的?

tcaproxy(接入層)采用對等設(shè)計方案,即單個游戲區(qū)下面的所有 tcaproxy(接入層)節(jié)點(diǎn)都包含了單個游戲區(qū)下所有表的路由信息,如果某個 tcaproxy(接入層)故障后,只要其余的 tcaproxy(接入層)節(jié)點(diǎn)不會過載,則 gameserver 會剔除異常的 tcaproxy(接入層)節(jié)點(diǎn),不會影響 gameserver 的使用,tcaproxy(接入層)沒有單點(diǎn)的風(fēng)險。

tcapsvr(存儲層)的容災(zāi)是怎么做的?

tcapsvr(存儲層)采用一主(tcapsvr master)一從(tcapsvr slave)的模式運(yùn)行,tcapsvr master/slave 實(shí)時的在同步數(shù)據(jù),采用同城異 IDC 部署,確保主從同步時延小于10ms,如果 tcapsvr slave 異常,不會影響 gameserver 的使用(沒有開啟讀分流, gameserver 的請求是 tcapsvr master 處理,如果開啟讀分流后,tcapsvr slave 會協(xié)助處理部分讀請求),DBA 進(jìn)行 tcapsvr slave 重建即可;如果 tcapsvr master 異常,則 tcapsvr slave 會進(jìn)行故障恢復(fù),DBA 再申請新的機(jī)器的 tcapsvr slave 重建即可,tcapsvr(存儲層)沒有單點(diǎn)的風(fēng)險。

TcaplusDB 有過載保護(hù)嗎?

接入層、存儲層都有進(jìn)程級的過載保護(hù)措施,保障業(yè)務(wù)高峰時服務(wù)不雪崩。

TcaplusDB 的冷熱數(shù)據(jù)交換原理是什么?

TcaplusDB 采用內(nèi)存 + SSD 盤存儲,單個引擎文件,前1GB映射在內(nèi)存,熱數(shù)據(jù)盡量放在內(nèi)存,冷數(shù)據(jù)放在磁盤,采用 LRU 算法進(jìn)行冷熱數(shù)據(jù)交換,gameserver 的 get 操作觸發(fā) LRU 換入操作,tcapsvr(存儲層)的 LRU 線程負(fù)責(zé) LRU 換出操作,盡量保證熱數(shù)據(jù)存儲在內(nèi)存里,確保 cache 命中率高、單次讀寫延時低。

tcaproxy(接入層)是怎么選擇 tcapsvr(存儲層)的?

每個表定義的有分表因子,如果沒有定義分表,分表因子則默認(rèn)是主鍵,tcaproxy(接入層)根據(jù) hash(分表因子)%1w,選擇對應(yīng)的 tcapsvr(存儲層),故分表因子離散度要高。

TcaplusDB 鎖的級別是什么?

TcaplusDB 鎖的粒度是記錄級別。

“TcaplusDB常見問題有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI