獲取平臺(tái)用戶資料的方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供了一種獲取平臺(tái)用戶資料的方法,所述方法包括:獲取用戶訪問請求,所述用戶訪問請求中包含用戶標(biāo)識(shí)和驗(yàn)證信息;將所述用戶標(biāo)識(shí)和驗(yàn)證信息加入隊(duì)列中;按照隊(duì)列的排序依次獲取用戶標(biāo)識(shí),對每一用戶標(biāo)識(shí),執(zhí)行:根據(jù)所述用戶標(biāo)識(shí)和驗(yàn)證信息從資料服務(wù)器中獲取對應(yīng)的用戶資料數(shù)據(jù),并存儲(chǔ)。采用該方法,能夠減少資料服務(wù)器的負(fù)載,使得資料服務(wù)器能夠快速響應(yīng),從而能夠及時(shí)返回用戶資料數(shù)據(jù),提高了應(yīng)用程序的正常運(yùn)行概率。此外,還提供了一種獲取平臺(tái)用戶資料的系統(tǒng)。
【專利說明】獲取平臺(tái)用戶資料的方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計(jì)算機(jī)技術(shù),特別是涉及一種獲取平臺(tái)用戶資料的方法和系統(tǒng)。
【背景技術(shù)】
[0002] 在登錄各種平臺(tái)的應(yīng)用程序時(shí),都需要獲取平臺(tái)用戶資料數(shù)據(jù)。傳統(tǒng)技術(shù)中,用戶 通過瀏覽器訪問應(yīng)用程序,Web服務(wù)器會(huì)直接從保存用戶資料的服務(wù)器獲取用戶資料。例 如,用戶通過瀏覽器訪問SNS社區(qū),點(diǎn)擊某個(gè)連接進(jìn)入到某個(gè)游戲的應(yīng)用程序,則Web服務(wù) 器會(huì)從保存用戶在該游戲的資料數(shù)據(jù)的服務(wù)器獲取用戶資料,根據(jù)獲取到的用戶資料用戶 即可對游戲應(yīng)用程序進(jìn)行游戲相關(guān)操作。
[0003] 然而,由于傳統(tǒng)技術(shù)中,Web服務(wù)器直接與資料服務(wù)器進(jìn)行交互,當(dāng)網(wǎng)絡(luò)出現(xiàn)問題 或者資料服務(wù)器出現(xiàn)問題時(shí),將會(huì)導(dǎo)致應(yīng)用程序無法正常運(yùn)行;且如果訪問量在某一時(shí)刻 驟增,則Web服務(wù)器將會(huì)高頻率的與資料服務(wù)器交互,易造成用戶資料數(shù)據(jù)返回超時(shí),容易 出現(xiàn)響應(yīng)不及時(shí)或響應(yīng)超時(shí)等問題,嚴(yán)重影響用戶體驗(yàn)。
【發(fā)明內(nèi)容】
[0004] 基于此,有必要針對傳統(tǒng)技術(shù)中容易導(dǎo)致應(yīng)用程序無法正常運(yùn)行或響應(yīng)不及時(shí)、 超時(shí)的問題,提供一種獲取平臺(tái)用戶資料的方法和系統(tǒng),能夠減少資料服務(wù)器的負(fù)載,使得 資料服務(wù)器能夠快速響應(yīng)。
[0005] -種獲取平臺(tái)用戶資料的方法,所述方法包括:
[0006] 獲取用戶訪問請求,所述用戶訪問請求中包含用戶標(biāo)識(shí)和驗(yàn)證信息;
[0007] 將所述用戶標(biāo)識(shí)和驗(yàn)證信息加入隊(duì)列中;
[0008] 按照隊(duì)列的排序依次獲取用戶標(biāo)識(shí),對每一用戶標(biāo)識(shí),執(zhí)行:
[0009] 根據(jù)所述用戶標(biāo)識(shí)和驗(yàn)證信息從資料服務(wù)器中獲取對應(yīng)的用戶資料數(shù)據(jù),并存 儲(chǔ)。
[0010] 在其中一個(gè)實(shí)施例中,所述將用戶標(biāo)識(shí)和驗(yàn)證信息加入隊(duì)列中,包括:
[0011] 將所述用戶標(biāo)識(shí)和驗(yàn)證信息存儲(chǔ)在Redis集合中。
[0012] 在其中一個(gè)實(shí)施例中,所述將用戶標(biāo)識(shí)和驗(yàn)證信息存儲(chǔ)在Redis集合中,包括:
[0013] 對所述用戶標(biāo)識(shí)進(jìn)行求模,并散列到預(yù)設(shè)數(shù)量的數(shù)據(jù)集中,所述數(shù)據(jù)集包括散列 后的用戶標(biāo)識(shí)、平臺(tái)標(biāo)識(shí)和驗(yàn)證信息。
[0014] 在其中一個(gè)實(shí)施例中,所述按照隊(duì)列的排序依次獲取用戶標(biāo)識(shí),包括:
[0015] 對每個(gè)所述數(shù)據(jù)集啟動(dòng)一組守護(hù)進(jìn)程,執(zhí)行所述守護(hù)進(jìn)程從所述數(shù)據(jù)集中取出相 應(yīng)的數(shù)據(jù),組裝成用戶標(biāo)識(shí)和驗(yàn)證信息。
[0016] 在其中一個(gè)實(shí)施例中,在所述獲取用戶訪問請求之后,還包括:
[0017] 根據(jù)用戶標(biāo)識(shí)從緩存服務(wù)器中獲取對應(yīng)的用戶資料數(shù)據(jù);
[0018] 所述根據(jù)用戶標(biāo)識(shí)和驗(yàn)證信息從資料服務(wù)器中獲取對應(yīng)的用戶資料數(shù)據(jù),并存 儲(chǔ),包括:
[0019] 根據(jù)用戶標(biāo)識(shí)和驗(yàn)證信息從資料服務(wù)器中獲取對應(yīng)的用戶資料數(shù)據(jù);
[0020] 將所述獲取的用戶資料數(shù)據(jù)存儲(chǔ)在緩存服務(wù)器和數(shù)據(jù)庫服務(wù)器中。
[0021] 一種獲取平臺(tái)用戶資料的系統(tǒng),所述系統(tǒng)包括:
[0022] Web服務(wù)器,用于獲取用戶訪問請求,所述用戶訪問請求中包含用戶標(biāo)識(shí)和驗(yàn)證信 息;
[0023] 隊(duì)列服務(wù)器,用于將所述用戶標(biāo)識(shí)和驗(yàn)證信息加入隊(duì)列中;
[0024] 進(jìn)程服務(wù)器,用于按照隊(duì)列的排列依次獲取用戶標(biāo)識(shí),對每一個(gè)用戶標(biāo)識(shí),執(zhí)行: 根據(jù)所述用戶標(biāo)識(shí)和驗(yàn)證信息從資料服務(wù)器中獲取對應(yīng)的用戶資料數(shù)據(jù),并存儲(chǔ);
[0025] 資料服務(wù)器,用于保存用戶資料數(shù)據(jù)。
[0026] 在其中一個(gè)實(shí)施例中,所述隊(duì)列服務(wù)器用于將所述用戶標(biāo)識(shí)和驗(yàn)證信息存儲(chǔ)在 Redis集合中。
[0027] 在其中一個(gè)實(shí)施例中,所述隊(duì)列服務(wù)器用于對所述用戶標(biāo)識(shí)進(jìn)行求模,并散列到 預(yù)設(shè)數(shù)據(jù)的數(shù)據(jù)集中,所述數(shù)據(jù)集包括散列后的用戶標(biāo)識(shí)、平臺(tái)標(biāo)識(shí)和驗(yàn)證信息。
[0028] 在其中一個(gè)實(shí)施例中,所述進(jìn)程服務(wù)器用于對每個(gè)所述數(shù)據(jù)集啟動(dòng)一組守護(hù)進(jìn) 程,執(zhí)行所述守護(hù)進(jìn)程從所述數(shù)據(jù)集中取出相應(yīng)的數(shù)據(jù),組裝成用戶標(biāo)識(shí)和驗(yàn)證信息。
[0029] 在其中一個(gè)實(shí)施例中,所述系統(tǒng)還包括:
[0030] 緩存服務(wù)器,用戶緩存用戶資料數(shù)據(jù);
[0031] 數(shù)據(jù)庫服務(wù)器,用于保存用戶資料數(shù)據(jù);
[0032] 所述Web服務(wù)器還用于在獲取用戶訪問請求后,根據(jù)所述用戶標(biāo)識(shí)從所述緩存服 務(wù)器中獲取對應(yīng)的用戶資料數(shù)據(jù);
[0033] 所述進(jìn)程服務(wù)器還用于根據(jù)所述用戶標(biāo)識(shí)和驗(yàn)證信息從所述資料服務(wù)器中獲取 對應(yīng)的用戶資料數(shù)據(jù),將獲取的用戶資料數(shù)據(jù)存儲(chǔ)在所述緩存服務(wù)器和數(shù)據(jù)庫服務(wù)器中。 [0034] 上述獲取平臺(tái)用戶資料的方法和系統(tǒng),通過將用戶標(biāo)識(shí)和驗(yàn)證信息加入隊(duì)列,從 隊(duì)列中依序取出用戶標(biāo)識(shí)進(jìn)行處理,返回對應(yīng)用戶標(biāo)識(shí)的用戶資料數(shù)據(jù),相對于傳統(tǒng)的Web 服務(wù)器與資料服務(wù)器直接交互的方式,能夠減少資料服務(wù)器的負(fù)載,使得資料服務(wù)器能夠 快速響應(yīng),從而能夠及時(shí)返回用戶資料數(shù)據(jù),提高了應(yīng)用程序的正常運(yùn)行概率。
【專利附圖】
【附圖說明】
[0035] 圖1為一個(gè)實(shí)施例中獲取平臺(tái)用戶資料的方法的流程圖;
[0036] 圖2為一個(gè)實(shí)施例中獲取平臺(tái)用戶資料的系統(tǒng)的結(jié)構(gòu)示意圖;
[0037] 圖3為另一個(gè)實(shí)施例中獲取平臺(tái)用戶資料的系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0038] 如圖1所示,在一個(gè)實(shí)施例中,提供了一種獲取平臺(tái)用戶資料的方法,該方法包 括:
[0039] 步驟102,獲取用戶訪問請求,用戶訪問請求中包含用戶標(biāo)識(shí)和驗(yàn)證信息。
[0040] 本實(shí)施例中,用戶可通過瀏覽器訪問應(yīng)用程序,Web服務(wù)器獲取到用戶訪問請求, 其中用戶訪問請求中攜帶有用戶標(biāo)識(shí),用戶標(biāo)識(shí)用于唯一標(biāo)識(shí)一個(gè)用戶。進(jìn)一步的,可接收 用戶輸入的登錄信息,包括帳號(hào)、密碼等,根據(jù)登錄信息通過驗(yàn)證后則登錄進(jìn)入應(yīng)用程序。 本實(shí)施例中,在驗(yàn)證通過后可生成驗(yàn)證信息,該驗(yàn)證信息是用來獲取用戶資料數(shù)據(jù)的驗(yàn)證 憑證,可以是根據(jù)登錄信息生成的字符串。進(jìn)一步的,為提高安全性,還可設(shè)置該字符串的 生命周期,例如1小時(shí)到24小時(shí)不等。
[0041] 在一個(gè)實(shí)施例中,在獲取到用戶訪問請求之后,可根據(jù)用戶標(biāo)識(shí)從緩存服務(wù)器中 獲取對應(yīng)的用戶資料數(shù)據(jù)。本實(shí)施例中,上次訪問獲取到的用戶資料數(shù)據(jù)在緩存服務(wù)器中 進(jìn)行緩存,因此可直接從緩存服務(wù)器中獲取與用戶標(biāo)識(shí)對應(yīng)的用戶資料數(shù)據(jù),這些用戶資 料數(shù)據(jù)包括用戶姓名、用戶昵稱、用戶性別等基本信息,根據(jù)這些用戶資料數(shù)據(jù)可直接登錄 進(jìn)入應(yīng)用程序并進(jìn)行相關(guān)操作。
[0042] 步驟104,將用戶標(biāo)識(shí)和驗(yàn)證信息加入隊(duì)列中。
[0043] 在一個(gè)實(shí)施例中,可將用戶標(biāo)識(shí)和驗(yàn)證信息存儲(chǔ)在Redis集合中。采用Redis集 合存儲(chǔ)隊(duì)列,可以保證集合中的用戶標(biāo)識(shí)的唯一性,保證一個(gè)用戶在短時(shí)間內(nèi)只更新一次 資料,不會(huì)造成資源浪費(fèi)。
[0044] 進(jìn)一步的,在一個(gè)實(shí)施例中,將用戶標(biāo)識(shí)和驗(yàn)證信息存儲(chǔ)在Redis集合中的步驟 包括:對用戶標(biāo)識(shí)進(jìn)行求模,并散列到預(yù)設(shè)數(shù)量的數(shù)據(jù)集中,數(shù)據(jù)集中包含散列后的用戶標(biāo) 識(shí)、平臺(tái)標(biāo)識(shí)和驗(yàn)證信息。其中,散列的一種情況可以是:,對用戶標(biāo)識(shí)進(jìn)行求模后,得到的 結(jié)果相同的用戶標(biāo)識(shí)存儲(chǔ)在同一數(shù)據(jù)集中,而對所有用戶標(biāo)識(shí)進(jìn)行求模后,則會(huì)得到預(yù)設(shè) 數(shù)量的數(shù)據(jù)集,即為將所有用戶標(biāo)識(shí)散列到了預(yù)設(shè)數(shù)量的數(shù)據(jù)集中。這樣,在獲取用戶標(biāo)識(shí) 時(shí),可直接根據(jù)其求模結(jié)果去相應(yīng)的數(shù)據(jù)集中查找,因此能夠提高查找效率。本實(shí)施例中, 由于Redis是一個(gè)高性能的key-value (鍵-值)存儲(chǔ)系統(tǒng)(一種分布式存儲(chǔ)系統(tǒng)),因此需 要設(shè)計(jì)一個(gè)key來存儲(chǔ)數(shù)據(jù),而一個(gè)key中存儲(chǔ)的數(shù)據(jù)大小有限,因此需要將用戶標(biāo)識(shí)進(jìn)行 拆分。
[0045] 進(jìn)一步的,在Redis集合中,為防止分隔符擾亂正常數(shù)據(jù),可采用JS0N (JavaScript Object Notation,一種輕量級(jí)的數(shù)據(jù)交換格式)存儲(chǔ)數(shù)據(jù)。以將用戶標(biāo)識(shí)進(jìn) 行求模,散列到10個(gè)數(shù)據(jù)集中為例進(jìn)行說明。假設(shè)用戶標(biāo)識(shí)用mid表示,對mid求模并分 配 key。例如:keyl=mid%10=l,key2=mid%10=2,…keyl0=mid%10=10,即 keyl 為第一個(gè)數(shù) 據(jù)集,key2為第二個(gè)數(shù)據(jù)集,以此類推。則Redis集合中的數(shù)據(jù)為:json encode(array(12 3, 123456, 1, sessionkey)), encode (array(124, 2222333, 1, sessionkey)), encode(array ( 125,888888, l,sessionkey))…·等,共10個(gè)數(shù)據(jù)集。其中,123、124、125是散列后的用戶 標(biāo)識(shí),123456是平臺(tái)標(biāo)識(shí)、1為語言類型,sessionkey為驗(yàn)證信息。
[0046] 步驟106,按照隊(duì)列的排序獲取用戶標(biāo)識(shí),對每一用戶標(biāo)識(shí),執(zhí)行:根據(jù)用戶標(biāo)識(shí) 和驗(yàn)證信息從資料服務(wù)器獲取對應(yīng)的用戶資料數(shù)據(jù),并存儲(chǔ)。
[0047] 本實(shí)施例中,按照隊(duì)列的排序從Redis集合中一個(gè)一個(gè)的取出數(shù)據(jù),由于之前對 用戶標(biāo)識(shí)進(jìn)行了求模,并散列到多個(gè)數(shù)據(jù)集中,可獲取這些數(shù)據(jù)集,根據(jù)用戶標(biāo)識(shí)的求模結(jié) 果從相應(yīng)的數(shù)據(jù)集中分解出用戶標(biāo)識(shí)和驗(yàn)證信息。具體的,可對每個(gè)數(shù)據(jù)集啟動(dòng)一組守護(hù) 進(jìn)程,執(zhí)行守護(hù)進(jìn)程從數(shù)據(jù)集中取出相應(yīng)的數(shù)據(jù),組裝成用戶標(biāo)識(shí)和驗(yàn)證信息。
[0048] 對于Redis集合中的數(shù)據(jù),每取出一條數(shù)據(jù),則清空刪除相應(yīng)key的數(shù)據(jù),對每個(gè) 數(shù)據(jù)集啟動(dòng)一組守護(hù)進(jìn)程進(jìn)行處理,取出相應(yīng)數(shù)據(jù)并組裝成用戶標(biāo)識(shí)和驗(yàn)證信息后,根據(jù) 用戶標(biāo)識(shí)和驗(yàn)證信息去資料服務(wù)器獲取與用戶標(biāo)識(shí)對應(yīng)的用戶資料數(shù)據(jù),其中驗(yàn)證信息用 于判斷獲取數(shù)據(jù)的合法性,當(dāng)驗(yàn)證信息合法時(shí),才允許獲取與用戶標(biāo)識(shí)對應(yīng)的用戶資料數(shù) 據(jù)。
[0049] 進(jìn)一步的,可將從資料服務(wù)器獲取的與用戶標(biāo)識(shí)對應(yīng)的用戶資料數(shù)據(jù)存儲(chǔ)在緩存 服務(wù)器和數(shù)據(jù)庫服務(wù)器中,以對緩存服務(wù)器和數(shù)據(jù)庫服務(wù)器中的對應(yīng)該用戶標(biāo)識(shí)的用戶資 料數(shù)據(jù)進(jìn)行更新。
[0050] 如圖2所示,在一個(gè)實(shí)施例中,提供了一種獲取平臺(tái)用戶資料的系統(tǒng),包括Web服 務(wù)器202、隊(duì)列服務(wù)器204、進(jìn)程服務(wù)器206,資料服務(wù)器208和數(shù)據(jù)庫服務(wù)器210,其中:
[0051] Web服務(wù)器202用于獲取用戶訪問請求,用戶訪問請求中包含用戶標(biāo)識(shí)和驗(yàn)證信 肩、。
[0052] 本實(shí)施例中,用戶可通過瀏覽器訪問應(yīng)用程序,Web服務(wù)器202獲取到用戶訪問請 求,其中用戶訪問請求中攜帶有用戶標(biāo)識(shí),用戶標(biāo)識(shí)用于唯一標(biāo)識(shí)一個(gè)用戶。進(jìn)一步的,Web 服務(wù)器202可接收用戶輸入的登錄信息,包括帳號(hào)、密碼等,根據(jù)登錄信息通過驗(yàn)證后則登 錄進(jìn)入應(yīng)用程序。本實(shí)施例中,在驗(yàn)證通過后可生成驗(yàn)證信息,該驗(yàn)證信息是用來獲取用戶 資料數(shù)據(jù)的驗(yàn)證憑證,可以是根據(jù)登錄信息生成的字符串。進(jìn)一步的,為提高安全性,還可 設(shè)置該字符串的生命周期,例如1小時(shí)到24小時(shí)不等。
[0053] 隊(duì)列服務(wù)器204用于將用戶標(biāo)識(shí)和驗(yàn)證信息加入隊(duì)列中。
[0054] 在一個(gè)實(shí)施例中,隊(duì)列服務(wù)器204可用于將用戶標(biāo)識(shí)和驗(yàn)證信息存儲(chǔ)在Redis集 合中。采用Redis集合存儲(chǔ)隊(duì)列,可以保證集合中的用戶標(biāo)識(shí)的唯一性,保證一個(gè)用戶在短 時(shí)間內(nèi)只更新一次資料,不會(huì)造成資源浪費(fèi)。
[0055] 進(jìn)一步的,在一個(gè)實(shí)施例中,隊(duì)列服務(wù)器204還用于對用戶標(biāo)識(shí)進(jìn)行求模,并散列 到預(yù)設(shè)數(shù)量的數(shù)據(jù)集中,數(shù)據(jù)集中包含散列后的用戶標(biāo)識(shí)、平臺(tái)標(biāo)識(shí)和驗(yàn)證信息。本實(shí)施例 中,由于Redis是一個(gè)key-value存儲(chǔ)系統(tǒng),因此需要設(shè)計(jì)一個(gè)key (鍵)來存儲(chǔ)數(shù)據(jù),而一 個(gè)key中存儲(chǔ)的數(shù)據(jù)大小有限,因此隊(duì)列服務(wù)器204需要將用戶標(biāo)識(shí)進(jìn)行拆分。
[0056] 進(jìn)一步的,在Redis集合中,為防止分隔符擾亂正常數(shù)據(jù),可采用JS0N (JavaScript Object Notation,一種輕量級(jí)的數(shù)據(jù)交換格式)存儲(chǔ)數(shù)據(jù)。以將用戶標(biāo)識(shí)進(jìn) 行求模,散列到10個(gè)數(shù)據(jù)集中為例進(jìn)行說明。假設(shè)用戶標(biāo)識(shí)用mid表示,對mid求模并分 配 key。例如:keyl=mid%10=l,key2=mid%10=2,…keyl0=mid%10=10,即 keyl 為第一個(gè)數(shù) 據(jù)集,key2為第二個(gè)數(shù)據(jù)集,以此類推。則Redis集合中的數(shù)據(jù)為:json encode(array(12 3, 123456, 1, sessionkey)), encode (array (124, 2222333, 1, sessionkey)), encode(array ( 125,888888, l,sessionkey))....等,共10個(gè)數(shù)據(jù)集。其中,123、124、125是散列后的用戶 標(biāo)識(shí),123456是平臺(tái)標(biāo)識(shí)、1為語言類型,sessionkey為驗(yàn)證信息。
[0057] 進(jìn)程服務(wù)器206用于按照隊(duì)列的排序獲取用戶標(biāo)識(shí),對每一用戶標(biāo)識(shí),執(zhí)行:根據(jù) 用戶標(biāo)識(shí)和驗(yàn)證信息從資料服務(wù)器獲取對應(yīng)的用戶資料數(shù)據(jù),并存儲(chǔ)。
[0058] 資料服務(wù)器208用于保存用戶資料數(shù)據(jù)。
[0059] 數(shù)據(jù)庫服務(wù)器210用于存儲(chǔ)進(jìn)程服務(wù)器206獲取到的與用戶標(biāo)識(shí)對應(yīng)的用戶資料 數(shù)據(jù)。
[0060] 本實(shí)施例中,進(jìn)程服務(wù)器206按照隊(duì)列的排序從Redis集合中一個(gè)一個(gè)的取出數(shù) 據(jù),由于之前隊(duì)列服務(wù)器204對用戶標(biāo)識(shí)進(jìn)行了求模,并散列到多個(gè)數(shù)據(jù)集中,則進(jìn)程服務(wù) 器206可獲取這些數(shù)據(jù)集,從中分解出用戶標(biāo)識(shí)和驗(yàn)證信息。具體的,進(jìn)程服務(wù)器206可用 于對每個(gè)數(shù)據(jù)集啟動(dòng)一組守護(hù)進(jìn)程,執(zhí)行守護(hù)進(jìn)程從數(shù)據(jù)集中取出相應(yīng)的數(shù)據(jù),組裝成用 戶標(biāo)識(shí)和驗(yàn)證信息。
[0061] 對于Redis集合中的數(shù)據(jù),進(jìn)程服務(wù)器206每取出一條數(shù)據(jù),則隊(duì)列服務(wù)器204清 空刪除相應(yīng)key的數(shù)據(jù)。進(jìn)程服務(wù)器206對每個(gè)數(shù)據(jù)集啟動(dòng)一組守護(hù)進(jìn)程進(jìn)行處理,取出 相應(yīng)數(shù)據(jù)并組裝成用戶標(biāo)識(shí)和驗(yàn)證信息后,根據(jù)用戶標(biāo)識(shí)和驗(yàn)證信息從資料服務(wù)器208獲 取與用戶標(biāo)識(shí)對應(yīng)的用戶資料數(shù)據(jù),其中驗(yàn)證信息用于判斷獲取數(shù)據(jù)的合法性,當(dāng)驗(yàn)證信 息合法時(shí),資料服務(wù)器208才允許進(jìn)程服務(wù)器206獲取與用戶標(biāo)識(shí)對應(yīng)的用戶資料數(shù)據(jù)。
[0062] 在一個(gè)實(shí)施例中,如圖3所示,在圖2所示實(shí)施例的基礎(chǔ)上,獲取平臺(tái)用戶資料的 系統(tǒng)還包括緩存服務(wù)器203,其中:
[0063] 緩存服務(wù)器203用于緩存用戶資料數(shù)據(jù)。
[0064] 本實(shí)施例中,Web服務(wù)器202與多個(gè)用戶終端進(jìn)行交互,當(dāng)獲取到用戶訪問請求 后,根據(jù)訪問請求中的用戶標(biāo)識(shí)從緩存服務(wù)器203中獲取對應(yīng)的用戶資料數(shù)據(jù)。本實(shí)施例 中,上次訪問獲取到的用戶資料數(shù)據(jù)在緩存服務(wù)器203中進(jìn)行緩存,因此可直接從緩存服 務(wù)器203中獲取與用戶標(biāo)識(shí)對應(yīng)的用戶資料數(shù)據(jù),這些用戶資料數(shù)據(jù)包括用戶姓名、用戶 昵稱、用戶性別等基本信息,根據(jù)這些用戶資料數(shù)據(jù)可直接登錄進(jìn)入應(yīng)用程序并進(jìn)行相關(guān) 操作。
[0065] 進(jìn)一步的,進(jìn)程服務(wù)器206可將從資料服務(wù)器208獲取的與用戶標(biāo)識(shí)對應(yīng)的用戶 資料數(shù)據(jù)存儲(chǔ)在緩存服務(wù)器203和數(shù)據(jù)庫服務(wù)器210中,以對緩存服務(wù)器203和數(shù)據(jù)庫服 務(wù)器210中的對應(yīng)該用戶標(biāo)識(shí)的用戶資料數(shù)據(jù)進(jìn)行更新。
[0066] 上述獲取平臺(tái)用戶資料的方法和系統(tǒng),通過將用戶標(biāo)識(shí)和驗(yàn)證信息加入隊(duì)列中, 從隊(duì)列中依序取出用戶標(biāo)識(shí)進(jìn)行處理,返回對應(yīng)用戶標(biāo)識(shí)的用戶資料數(shù)據(jù),相對于傳統(tǒng)的 Web服務(wù)器與資料服務(wù)器直接交互的方式,能夠減少資料服務(wù)器的負(fù)載,使得資料服務(wù)器能 夠快速響應(yīng),從而能夠及時(shí)返回用戶資料數(shù)據(jù),提高了應(yīng)用程序的正常運(yùn)行概率。
[0067] 此外,在獲取用戶訪問請求后,可先從緩存服務(wù)器中獲取用戶資料數(shù)據(jù),即使資料 服務(wù)器出現(xiàn)問題,也不影響應(yīng)用程序的運(yùn)行。通過隊(duì)列這種異步處理的方式,大大減少了網(wǎng) 絡(luò)超時(shí)或鏈路不通的情形,能夠加快運(yùn)行應(yīng)用程序的效率。通過驗(yàn)證信息一起加入到隊(duì)列 中,還能提高處理的安全性。
[0068] 以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并 不能因此而理解為對本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對于本領(lǐng)域的普通技術(shù)人員 來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保 護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
【權(quán)利要求】
1. 一種獲取平臺(tái)用戶資料的方法,所述方法包括: 獲取用戶訪問請求,所述用戶訪問請求中包含用戶標(biāo)識(shí)和驗(yàn)證信息; 將所述用戶標(biāo)識(shí)和驗(yàn)證信息加入隊(duì)列中; 按照隊(duì)列的排序依次獲取用戶標(biāo)識(shí),對每一用戶標(biāo)識(shí),執(zhí)行: 根據(jù)所述用戶標(biāo)識(shí)和驗(yàn)證信息從資料服務(wù)器中獲取對應(yīng)的用戶資料數(shù)據(jù),并存儲(chǔ)。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將用戶標(biāo)識(shí)和驗(yàn)證信息加入隊(duì)列中, 包括: 將所述用戶標(biāo)識(shí)和驗(yàn)證信息存儲(chǔ)在Redis集合中。
3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述將用戶標(biāo)識(shí)和驗(yàn)證信息存儲(chǔ)在Redis 集合中,包括: 對所述用戶標(biāo)識(shí)進(jìn)行求模,并散列到預(yù)設(shè)數(shù)量的數(shù)據(jù)集中,所述數(shù)據(jù)集包括散列后的 用戶標(biāo)識(shí)、平臺(tái)標(biāo)識(shí)和驗(yàn)證信息。
4. 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述按照隊(duì)列的排序依次獲取用戶標(biāo)識(shí), 包括: 對每個(gè)所述數(shù)據(jù)集啟動(dòng)一組守護(hù)進(jìn)程,執(zhí)行所述守護(hù)進(jìn)程從所述數(shù)據(jù)集中取出相應(yīng)的 數(shù)據(jù),組裝成用戶標(biāo)識(shí)和驗(yàn)證信息。
5. 根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述獲取用戶訪問請求之后,還包括: 根據(jù)用戶標(biāo)識(shí)從緩存服務(wù)器中獲取對應(yīng)的用戶資料數(shù)據(jù); 所述根據(jù)用戶標(biāo)識(shí)和驗(yàn)證信息從資料服務(wù)器中獲取對應(yīng)的用戶資料數(shù)據(jù),并存儲(chǔ),包 括: 根據(jù)用戶標(biāo)識(shí)和驗(yàn)證信息從資料服務(wù)器中獲取對應(yīng)的用戶資料數(shù)據(jù); 將所述獲取的用戶資料數(shù)據(jù)存儲(chǔ)在緩存服務(wù)器和數(shù)據(jù)庫服務(wù)器中。
6. -種獲取平臺(tái)用戶資料的系統(tǒng),其特征在于,所述系統(tǒng)包括: Web服務(wù)器,用于獲取用戶訪問請求,所述用戶訪問請求中包含用戶標(biāo)識(shí)和驗(yàn)證信息; 隊(duì)列服務(wù)器,用于將所述用戶標(biāo)識(shí)和驗(yàn)證信息加入隊(duì)列中; 進(jìn)程服務(wù)器,用于按照隊(duì)列的排列依次獲取用戶標(biāo)識(shí),對每一個(gè)用戶標(biāo)識(shí),執(zhí)行:根據(jù) 所述用戶標(biāo)識(shí)和驗(yàn)證信息從資料服務(wù)器中獲取對應(yīng)的用戶資料數(shù)據(jù),并存儲(chǔ); 資料服務(wù)器,用于保存用戶資料數(shù)據(jù)。
7. 根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述隊(duì)列服務(wù)器用于將所述用戶標(biāo)識(shí)和 驗(yàn)證信息存儲(chǔ)在Redis集合中。
8. 根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述隊(duì)列服務(wù)器用于對所述用戶標(biāo)識(shí)進(jìn) 行求模,并散列到預(yù)設(shè)數(shù)據(jù)的數(shù)據(jù)集中,所述數(shù)據(jù)集包括散列后的用戶標(biāo)識(shí)、平臺(tái)標(biāo)識(shí)和驗(yàn) 證信息。
9. 根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述進(jìn)程服務(wù)器用于對每個(gè)所述數(shù)據(jù)集 啟動(dòng)一組守護(hù)進(jìn)程,執(zhí)行所述守護(hù)進(jìn)程從所述數(shù)據(jù)集中取出相應(yīng)的數(shù)據(jù),組裝成用戶標(biāo)識(shí) 和驗(yàn)證信息。
10. 根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括: 緩存服務(wù)器,用戶緩存用戶資料數(shù)據(jù); 數(shù)據(jù)庫服務(wù)器,用于保存用戶資料數(shù)據(jù); 所述Web服務(wù)器還用于在獲取用戶訪問請求后,根據(jù)所述用戶標(biāo)識(shí)從所述緩存服務(wù)器 中獲取對應(yīng)的用戶資料數(shù)據(jù); 所述進(jìn)程服務(wù)器還用于根據(jù)所述用戶標(biāo)識(shí)和驗(yàn)證信息從所述資料服務(wù)器中獲取對應(yīng) 的用戶資料數(shù)據(jù),將獲取的用戶資料數(shù)據(jù)存儲(chǔ)在所述緩存服務(wù)器和數(shù)據(jù)庫服務(wù)器中。
【文檔編號(hào)】H04L29/08GK104125254SQ201310153128
【公開日】2014年10月29日 申請日期:2013年4月27日 優(yōu)先權(quán)日:2013年4月27日
【發(fā)明者】周堅(jiān), 李宏業(yè) 申請人:博雅網(wǎng)絡(luò)游戲開發(fā)(深圳)有限公司