两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

數(shù)據(jù)緩存實(shí)現(xiàn)方法、系統(tǒng)及數(shù)據(jù)服務(wù)器的制造方法

文檔序號:10489036閱讀:178來源:國知局
數(shù)據(jù)緩存實(shí)現(xiàn)方法、系統(tǒng)及數(shù)據(jù)服務(wù)器的制造方法
【專利摘要】本發(fā)明實(shí)施例提供一種數(shù)據(jù)緩存實(shí)現(xiàn)方法、系統(tǒng)及數(shù)據(jù)服務(wù)器,該方法包括:獲取本區(qū)域提交的用戶數(shù)據(jù)或其他區(qū)域的數(shù)據(jù)服務(wù)器轉(zhuǎn)發(fā)的用戶數(shù)據(jù);為用戶數(shù)據(jù)添加命令頭信息和結(jié)束符得到緩存數(shù)據(jù),將緩存數(shù)據(jù)加入到本區(qū)域緩存隊(duì)列中;所述緩存數(shù)據(jù)包括命令頭信息、用戶數(shù)據(jù)和結(jié)束符,所述命令頭信息中包括指示執(zhí)行動作的命令號;從本區(qū)域緩存隊(duì)列中讀取緩存數(shù)據(jù),解析出所述命令頭信息和用戶數(shù)據(jù),根據(jù)包括的所述命令號對解析出的用戶數(shù)據(jù)執(zhí)行相應(yīng)的動作。能夠保證數(shù)據(jù)及時、準(zhǔn)確的同步到不同位置的服務(wù)器緩存中,提高數(shù)據(jù)緩存的速度和效率,保證數(shù)據(jù)緩存的同步性。
【專利說明】
數(shù)據(jù)緩存實(shí)現(xiàn)方法、系統(tǒng)及數(shù)據(jù)服務(wù)器
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,尤指一種適用于大規(guī)模數(shù)據(jù)緩存的數(shù)據(jù)緩存實(shí)現(xiàn) 方法、系統(tǒng)及數(shù)據(jù)服務(wù)器。
【背景技術(shù)】
[0002] 超文本預(yù)處理器(Hypertext Preprocessor,PHP)作為一種通用開源腳本語言,能 夠提供訪問關(guān)系型數(shù)據(jù)庫管理系統(tǒng)一一MySQL的新界面,MySQL可以使用SQL語言訪問數(shù)據(jù) 庫。
[0003] 要解決大規(guī)模的數(shù)據(jù)在不同位置訪問問題,除了服務(wù)器的支撐之外,還需要用各 種辦法將數(shù)據(jù)復(fù)制出多份,緩存在各機(jī)房的服務(wù)器上。比如使用獨(dú)立冗余磁盤陣列 (Redundant Array of Independent Disks,RAID),My SQL 的同步機(jī)制,輕量目錄訪問協(xié)議 (Lightweight Directory Access Protocol,LDAP)的同步機(jī)制等,還有谷歌(google)的谷 歌文件系統(tǒng)(Google File SyStem,GFS)。這些方案都解決了數(shù)據(jù)復(fù)制在某個層面上的問 題。
[0004] 針對不同的應(yīng)用需要,可以使用不同的緩存方案,比如:
[0005] 1.從數(shù)據(jù)庫讀取完數(shù)據(jù)后,將數(shù)據(jù)緩存在內(nèi)存或磁盤,設(shè)定一個過期時間,過期后 重新生成緩存。
[0006] 2.從數(shù)據(jù)庫讀取完數(shù)據(jù)后,將數(shù)據(jù)緩存在內(nèi)存或磁盤,在數(shù)據(jù)更新的時候,將緩存 刪除,重新生成緩存,或者等待下次讀取重新生成緩存。
[0007] 這些緩存的方案實(shí)現(xiàn)都比較簡單,現(xiàn)有實(shí)現(xiàn)這些方案的代碼中充斥了這些方案的 各種各樣的實(shí)現(xiàn),可是當(dāng)我們發(fā)現(xiàn)這樣的緩存也不能夠解決問題的時候,則需要在緩存上 加緩存,需要在不同服務(wù)器,不同的機(jī)房構(gòu)建緩存。
[0008] 這個時候,情況變得復(fù)雜,緩存的方案不再那么重要,而一個可靠的機(jī)制來保證數(shù) 據(jù)能夠在不同位置,不同形式的緩存中保持同步才是最重要的,因此,如何實(shí)現(xiàn)及時、同步 的將數(shù)據(jù)緩存到不同的位置,以保證用戶能夠及時獲取到所需要獲取的數(shù)據(jù),一直是亟待 解決的技術(shù)問題。

【發(fā)明內(nèi)容】

[0009] 本發(fā)明實(shí)施例提供一種數(shù)據(jù)緩存實(shí)現(xiàn)方法、系統(tǒng)及數(shù)據(jù)服務(wù)器,用以解決現(xiàn)有技 術(shù)中存在沒有能夠保證數(shù)據(jù)同步的緩存到不同位置的問題,能夠提高數(shù)據(jù)緩存的速度和效 率,保證數(shù)據(jù)緩存的同步性。
[0010] -方面,本發(fā)明實(shí)施例提供了一種數(shù)據(jù)緩存實(shí)現(xiàn)方法,包括:
[0011] 獲取本區(qū)域提交的用戶數(shù)據(jù)或其他區(qū)域的數(shù)據(jù)服務(wù)器轉(zhuǎn)發(fā)的用戶數(shù)據(jù);
[0012] 為用戶數(shù)據(jù)添加命令頭信息和結(jié)束符得到緩存數(shù)據(jù),將緩存數(shù)據(jù)加入到本區(qū)域緩 存隊(duì)列中;所述緩存數(shù)據(jù)包括命令頭信息、用戶數(shù)據(jù)和結(jié)束符,所述命令頭信息中包括指示 執(zhí)行動作的命令號;
[0013] 從本區(qū)域緩存隊(duì)列中讀取緩存數(shù)據(jù),解析出所述命令頭信息和用戶數(shù)據(jù),根據(jù)包 括的所述命令號對解析出的用戶數(shù)據(jù)執(zhí)行相應(yīng)的動作。
[0014] 在一些可選的實(shí)施例中,根據(jù)包括的所述命令號對解析出的用戶數(shù)據(jù)執(zhí)行相應(yīng)的 動作,具體包括:
[0015] 若根據(jù)所述命令號確定出對解析出的用戶數(shù)據(jù)所要執(zhí)行的動作為管道輸出,將解 析出的用戶數(shù)據(jù)輸出給對應(yīng)的應(yīng)用程序;
[0016] 若根據(jù)所述命令號確定出對解析出的用戶數(shù)據(jù)所要執(zhí)行的動作為轉(zhuǎn)發(fā),將解析出 的用戶數(shù)據(jù)轉(zhuǎn)發(fā)給其他區(qū)域的數(shù)據(jù)服務(wù)器。
[0017] 在一些可選的實(shí)施例中,所述將解析出的用戶數(shù)據(jù)輸出給對應(yīng)的應(yīng)用程序,具體 包括:
[0018] 確定所述命令號對應(yīng)的管道輸出的命令頭信息,將解析出的用戶數(shù)據(jù)添加所述管 道輸出的命令頭信息后輸出給對應(yīng)的應(yīng)用程序;
[0019] 所述將解析出的用戶數(shù)據(jù)轉(zhuǎn)發(fā)給其他區(qū)域的數(shù)據(jù)服務(wù)器,具體包括:
[0020] 確定所述命令號對應(yīng)的轉(zhuǎn)發(fā)目的地址和轉(zhuǎn)發(fā)后需使用的新的命令頭信息,將解析 出的用戶數(shù)據(jù)和新的命令頭信息提供給與轉(zhuǎn)發(fā)目的地址對應(yīng)的其他區(qū)域的數(shù)據(jù)服務(wù)器。
[0021] 在一些可選的實(shí)施例中,通過讀隊(duì)列工具從本區(qū)域緩存隊(duì)列中讀取緩存數(shù)據(jù);
[0022] 所述讀隊(duì)列工具配置q文件記錄本區(qū)域緩存隊(duì)列的文件地址和文件名;配置p文件 記錄本區(qū)域緩存隊(duì)列中的文件處理位置信息;配置1文件保證單份實(shí)例運(yùn)行;配置q.conf文 件以實(shí)現(xiàn)配置管道輸出的命令頭信息、轉(zhuǎn)發(fā)目的地址和轉(zhuǎn)發(fā)后需使用的新的命令頭信息。
[0023] 在一些可選的實(shí)施例中,通過寫隊(duì)列工具為用戶數(shù)據(jù)添加命令頭信息和結(jié)束符; 其中,命令頭信息包括版本號、命令號、保留字節(jié)和數(shù)據(jù)長度。
[0024] 另一方面,本發(fā)明實(shí)施例提供一種數(shù)據(jù)服務(wù)器,包括:
[0025] 獲取模塊,用于獲取本區(qū)域提交的用戶數(shù)據(jù)或其他區(qū)域的數(shù)據(jù)服務(wù)器轉(zhuǎn)發(fā)的用戶 數(shù)據(jù);
[0026] 緩存模塊,用于為用戶數(shù)據(jù)添加命令頭信息和結(jié)束符得到緩存數(shù)據(jù),將緩存數(shù)據(jù) 加入到本區(qū)域緩存隊(duì)列中;所述緩存數(shù)據(jù)包括命令頭信息、用戶數(shù)據(jù)和結(jié)束符,所述命令頭 信息中包括指示執(zhí)行動作的命令號;
[0027] 執(zhí)行模塊,用于從本區(qū)域緩存隊(duì)列中讀取緩存數(shù)據(jù),解析出所述命令頭信息和用 戶數(shù)據(jù),根據(jù)包括的所述命令號對解析出的用戶數(shù)據(jù)執(zhí)行相應(yīng)的動作。
[0028] 在一些可選的實(shí)施例中,所述執(zhí)行模塊,具體用于:
[0029] 若根據(jù)所述命令號確定出對解析出的用戶數(shù)據(jù)所要執(zhí)行的動作為管道輸出,將解 析出的用戶數(shù)據(jù)輸出給對應(yīng)的應(yīng)用程序;
[0030] 若根據(jù)所述命令號確定出對解析出的用戶數(shù)據(jù)所要執(zhí)行的動作為轉(zhuǎn)發(fā),將解析出 的用戶數(shù)據(jù)轉(zhuǎn)發(fā)給其他區(qū)域的數(shù)據(jù)服務(wù)器。
[0031] 在一些可選的實(shí)施例中,所述執(zhí)行模塊,具體用于:
[0032] 確定所述命令號對應(yīng)的管道輸出的命令頭信息,將解析出的用戶數(shù)據(jù)添加所述管 道輸出的命令頭信息后輸出給對應(yīng)的應(yīng)用程序;
[0033] 所述將解析出的用戶數(shù)據(jù)轉(zhuǎn)發(fā)給其他區(qū)域的數(shù)據(jù)服務(wù)器,具體包括:
[0034]確定所述命令號對應(yīng)的轉(zhuǎn)發(fā)目的地址和轉(zhuǎn)發(fā)后需使用的新的命令頭信息,將解析 出的用戶數(shù)據(jù)和新的命令頭信息提供給與轉(zhuǎn)發(fā)目的地址對應(yīng)的其他區(qū)域的數(shù)據(jù)服務(wù)器。
[0035] 在一些可選的實(shí)施例中,所述執(zhí)行模塊中設(shè)置讀隊(duì)列工具,通過讀隊(duì)列工具從本 區(qū)域緩存隊(duì)列中讀取緩存數(shù)據(jù);
[0036] 所述讀隊(duì)列工具配置q文件記錄本區(qū)域緩存隊(duì)列的文件地址和文件名;配置p文件 記錄本區(qū)域緩存隊(duì)列中的文件處理位置信息;配置1文件保證單份實(shí)例運(yùn)行;配置q.conf文 件以實(shí)現(xiàn)配置管道輸出的命令頭信息、轉(zhuǎn)發(fā)目的地址和轉(zhuǎn)發(fā)后需使用的新的命令頭信息。
[0037] 在一些可選的實(shí)施例中,緩存模塊中設(shè)置寫隊(duì)列工具,通過寫隊(duì)列工具為用戶數(shù) 據(jù)添加命令頭信息和結(jié)束符;其中,命令頭信息包括版本號、命令號、保留字節(jié)和數(shù)據(jù)長度。
[0038] 另一方面,本發(fā)明實(shí)施例提供一種數(shù)據(jù)緩存實(shí)現(xiàn)系統(tǒng),包括:至少兩個上述數(shù)據(jù)服 務(wù)器。
[0039] 上述技術(shù)方案具有如下有益效果:數(shù)據(jù)服務(wù)器可以獲取本區(qū)域提交的用戶數(shù)據(jù), 也可以獲取其他區(qū)域的數(shù)據(jù)服務(wù)器轉(zhuǎn)發(fā)的用戶數(shù)據(jù);并為用戶數(shù)據(jù)添加命令頭信息和結(jié)束 符得到緩存數(shù)據(jù),將緩存數(shù)據(jù)加入到本區(qū)域緩存隊(duì)列中;通過命令頭信息中包括的命令號 指示執(zhí)行動作,便于后續(xù)讀取使用緩存數(shù)據(jù)。本區(qū)域緩存隊(duì)列中緩存的用戶數(shù)據(jù)有本區(qū)域 提交的也有其他服務(wù)器轉(zhuǎn)發(fā)的,從本區(qū)域緩存隊(duì)列中讀取緩存數(shù)據(jù)時,通過命令頭信息中 包括的命令號對解析出的用戶數(shù)據(jù)執(zhí)行相應(yīng)的動作,從而可以及時的將數(shù)據(jù)輸出或轉(zhuǎn)發(fā)到 其他數(shù)據(jù)服務(wù)器緩存。實(shí)現(xiàn)了同步的將數(shù)據(jù)緩存到不同位置的數(shù)據(jù)服務(wù)器中,緩存的速度 和效率比較高,同步性也比較好。
【附圖說明】
[0040] 為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以 根據(jù)這些附圖獲得其他的附圖。
[0041 ]圖1是本發(fā)明實(shí)施例一中數(shù)據(jù)緩存實(shí)現(xiàn)方法的流程圖;
[0042] 圖2是本發(fā)明實(shí)施例二中數(shù)據(jù)緩存實(shí)現(xiàn)方法的流程圖;
[0043] 圖3是本發(fā)明實(shí)施例二中數(shù)據(jù)緩存實(shí)現(xiàn)方法的流程圖;
[0044] 圖4是本發(fā)明實(shí)施例中數(shù)據(jù)緩存實(shí)現(xiàn)系統(tǒng)器的結(jié)構(gòu)圖;
[0045] 圖5是本發(fā)明實(shí)施例中的數(shù)據(jù)服務(wù)結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0046] 下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于 本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他 實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0047]為了解決現(xiàn)有技術(shù)中存在的不能夠保證數(shù)據(jù)同步的緩存到不同位置的問題,保證 數(shù)據(jù)的高效、準(zhǔn)確同步緩存,本發(fā)明實(shí)施例提供一種數(shù)據(jù)緩存實(shí)現(xiàn)方法,通過隊(duì)列機(jī)制,實(shí) 現(xiàn)緩存同步,同時將各個復(fù)雜的功能分隊(duì)列進(jìn)行模塊化處理,以保證緩存的同步性。下面通 過具體的實(shí)施例進(jìn)行詳細(xì)描述。
[0048] 實(shí)施例一
[0049] 本發(fā)明實(shí)施例一提供一種數(shù)據(jù)緩存實(shí)現(xiàn)方法,其流程如圖1所示,包括如下步驟:
[0050] 步驟S101:獲取本區(qū)域提交的用戶數(shù)據(jù)或其他區(qū)域的數(shù)據(jù)服務(wù)器轉(zhuǎn)發(fā)的用戶數(shù) 據(jù)。
[0051] 數(shù)據(jù)服務(wù)器可以獲取版本區(qū)域提交的用戶數(shù)據(jù)進(jìn)行緩存,以供后續(xù)使用;也可以 獲取其他區(qū)域的數(shù)據(jù)服務(wù)器轉(zhuǎn)發(fā)的用戶數(shù)據(jù)進(jìn)行緩存,以供后續(xù)使用。
[0052]步驟S102:為用戶數(shù)據(jù)添加命令頭信息和結(jié)束符得到緩存數(shù)據(jù)。其中,緩存數(shù)據(jù)包 括命令頭信息、用戶數(shù)據(jù)和結(jié)束符,命令頭信息中包括指示執(zhí)行動作的命令號。
[0053] 數(shù)據(jù)服務(wù)器獲取到用戶數(shù)據(jù)后,對其進(jìn)行緩存之前,為用戶數(shù)據(jù)添加命令頭信息, 以方便后續(xù)讀取該緩存數(shù)據(jù)時進(jìn)行識別;以及為用戶數(shù)據(jù)添加結(jié)束符來標(biāo)識該數(shù)據(jù)的結(jié) 束。
[0054] 通過寫隊(duì)列工具為用戶數(shù)據(jù)添加命令頭信息和結(jié)束符;其中,命令頭信息包括版 本號、命令號、保留字節(jié)和數(shù)據(jù)長度。
[0055]步驟S103:將緩存數(shù)據(jù)加入到本區(qū)域緩存隊(duì)列中。
[0056]緩存數(shù)據(jù)加入緩存隊(duì)列中后,可以供讀隊(duì)列工具讀取使用。
[0057]步驟S104:從本區(qū)域緩存隊(duì)列中讀取緩存數(shù)據(jù)。
[0058]通過讀隊(duì)列工具從本區(qū)域緩存隊(duì)列中讀取緩存數(shù)據(jù)。
[0059] 優(yōu)選的,讀隊(duì)列工具可以配置下列文件來控制混村隊(duì)列中的緩存數(shù)據(jù)的讀取:
[0060] 配置q文件記錄本區(qū)域緩存隊(duì)列的文件地址和文件名;
[0061 ]配置p文件記錄本區(qū)域緩存隊(duì)列中的文件處理位置信息;
[0062]配置1文件保證單份實(shí)例運(yùn)行;
[0063]配置q.conf文件以實(shí)現(xiàn)配置管道輸出的命令頭信息、轉(zhuǎn)發(fā)目的地址和轉(zhuǎn)發(fā)后需使 用的新的命令頭信息。
[0064]步驟S105:解析出命令頭信息和用戶數(shù)據(jù)。
[0065] 讀隊(duì)列工具讀取緩存數(shù)據(jù)后,對讀取的緩存數(shù)據(jù)進(jìn)行解析,解析出其中包括的命 令頭信息和用戶數(shù)據(jù),以及解析出命令頭信息中包括的命令號。
[0066] 步驟S106:根據(jù)包括的命令號對解析出的用戶數(shù)據(jù)執(zhí)行相應(yīng)的動作。
[0067] 根據(jù)解析出的命令號可以確定對解析出的用戶數(shù)據(jù)所要執(zhí)行的動作,其中命令號 所指示的所要執(zhí)行的動作可以包括管道輸出和轉(zhuǎn)發(fā)中的至少一種。
[0068] 若根據(jù)解析出的命令號確定出對解析出的用戶數(shù)據(jù)所要執(zhí)行的動作為管道輸出, 將解析出的用戶數(shù)據(jù)輸出給對應(yīng)的應(yīng)用程序。
[0069] 具體可選的,通過確定命令號對應(yīng)的管道輸出的命令頭信息,將解析出的用戶數(shù) 據(jù)添加管道輸出的命令頭信息后輸出給對應(yīng)的應(yīng)用程序。
[0070] 若根據(jù)解析出的命令號確定出對解析出的用戶數(shù)據(jù)所要執(zhí)行的動作為轉(zhuǎn)發(fā),將解 析出的用戶數(shù)據(jù)轉(zhuǎn)發(fā)給其他區(qū)域的數(shù)據(jù)服務(wù)器。
[0071 ]具體可選的,通過確定命令號對應(yīng)的轉(zhuǎn)發(fā)目的地址和轉(zhuǎn)發(fā)后需使用的新的命令頭 信息,將解析出的用戶數(shù)據(jù)和新的命令頭信息提供給與轉(zhuǎn)發(fā)目的地址對應(yīng)的其他區(qū)域的數(shù) 據(jù)服務(wù)器。
[0072]上述實(shí)施例一所述的方法,從一個數(shù)據(jù)服務(wù)器的角度描述了對獲取的本區(qū)域提交 的用戶數(shù)據(jù)和其他數(shù)據(jù)服務(wù)器轉(zhuǎn)發(fā)的用戶數(shù)據(jù)的緩存及處理過程,一個數(shù)據(jù)系統(tǒng)中可能包 含多個這樣的數(shù)據(jù)服務(wù)器,每個數(shù)據(jù)服務(wù)器可以充當(dāng)緩存服務(wù)器的角色也可以充當(dāng)轉(zhuǎn)發(fā)服 務(wù)器的角色,下面實(shí)施二以一個系統(tǒng)至少包括兩個數(shù)據(jù)服務(wù)器的系統(tǒng)為例來進(jìn)行詳細(xì)說 明。
[0073] 實(shí)施例二
[0074] 本發(fā)明實(shí)施例二所提供的數(shù)據(jù)緩存實(shí)現(xiàn)方法,其在各個數(shù)據(jù)服務(wù)器之間實(shí)現(xiàn)大規(guī) 模數(shù)據(jù)緩存同步的原理如圖2所示。
[0075] 第一數(shù)據(jù)服務(wù)器所屬區(qū)域內(nèi)的用戶提交用戶數(shù)據(jù)到第一數(shù)據(jù)服務(wù)器,第一數(shù)據(jù)服 務(wù)器中的寫隊(duì)列(qw)工具對獲取到的用戶數(shù)據(jù)進(jìn)行處理,得到緩存數(shù)據(jù)加入到本區(qū)域的緩 存隊(duì)列中。
[0076] 寫隊(duì)列(qw)工具負(fù)責(zé)把發(fā)給它的用戶數(shù)據(jù)收好,并向數(shù)據(jù)提交方確認(rèn)已完好接收 數(shù)據(jù)(即ok)。Qw工具作為數(shù)據(jù)服務(wù)器(例如:可以是apache服務(wù)器或其他數(shù)據(jù)服務(wù)器,其中, apache原意為充滿補(bǔ)丁的服務(wù)器,取自a patchy server的讀音)的公共網(wǎng)關(guān)接口(Common Gateway Interface,CGI)模塊,可以直接接受超文本傳輸協(xié)議(HyperText Transfer Protocol,HTTP)請求??梢酝ㄟ^寫隊(duì)列配置文件(qw.conf配置文件)中指定緩存數(shù)據(jù)保存 的緩存隊(duì)列文件的文件名。
[0077] Qw工具每次拿到用戶數(shù)據(jù)后,將其添加命令頭信息和結(jié)束符后,將得到的緩存數(shù) 據(jù)放在緩存隊(duì)列末尾。即每次qw工具額外在用戶數(shù)據(jù)前添加固定字節(jié)的命令頭,同時在用 戶數(shù)據(jù)末尾增加一個"QEND"來表征數(shù)據(jù)的結(jié)束,以區(qū)分各個數(shù)據(jù)。
[0078]緩存數(shù)據(jù)的格式如下表1所示。
[0079]表 1
L〇〇81 J 例如:一個典型的用尸數(shù)據(jù)提父到數(shù)據(jù)服務(wù)器后,經(jīng)腳本轉(zhuǎn)化以后的統(tǒng)一資源足 位符(Uniform Resource Locator,URL)如下:
[0082] http ://127.0.0.1/cgi-bin/qw?data=%01%00%00%00%D2%07%00%00% 00%00%00%00%03%00%00%00abc〇
[0083] 命令頭信息的設(shè)置是為了方便后續(xù)讀隊(duì)列(qr)工具讀取時能識別緩存隊(duì)列中的 各個緩存數(shù)據(jù)。緩存數(shù)據(jù)至少包括兩部分:命令頭信息和用戶數(shù)據(jù)本身。還可以通過一個結(jié) 束符來表示該緩存數(shù)據(jù)到此結(jié)束。
[0084] 如表1所示的,命令頭信息有16個字節(jié):1-4字節(jié)是版本號,編碼后為%01%00% 00%00;5_8字節(jié)是命令號,命令號與qr工具約定;9-12字節(jié)暫時保留;13-16字節(jié)是用戶數(shù) 據(jù)的長度。
[0085] qr工具可以配置基本的4個控制文件配置:
[0086] q文件:記錄當(dāng)前緩存隊(duì)列的文件地址和文件名,方便qr工具去讀取。
[0087] p文件:記錄當(dāng)前緩存隊(duì)列處理到什么位置,從而使得qr工具能知道當(dāng)前處理哪個 緩存數(shù)據(jù),下一個該處理哪個緩存數(shù)據(jù)。
[0088] 1文件:確保只有一份實(shí)例運(yùn)行的鎖文件,通過該文件保證qr工具當(dāng)前處理的緩存 數(shù)據(jù)只有一個,等處理完當(dāng)前緩存數(shù)據(jù)后,在獲取下一個進(jìn)行處理。
[0089] q.conf文件:配置qr工具對不同命令頭信息的執(zhí)行動作。例如:執(zhí)行動作為轉(zhuǎn)發(fā)或 管道輸出。又例如:執(zhí)行動作為轉(zhuǎn)發(fā)時的轉(zhuǎn)發(fā)目的地址和新命令頭;執(zhí)行動作為管道輸出 時,對應(yīng)的管道輸出命令頭。
[0090] 如圖2所示的,緩存數(shù)據(jù)加入到本區(qū)域的緩存隊(duì)列中之后,讀隊(duì)列(qr)工具可以讀 取緩存隊(duì)列中的各個緩存數(shù)據(jù)進(jìn)行處理。具體的,可以從緩存隊(duì)列文件中讀取當(dāng)前可讀取 的緩存數(shù)據(jù)及其相關(guān)信息。
[0091] qr工具讀取緩存隊(duì)列中的緩存數(shù)據(jù)時執(zhí)行操作如下:針對當(dāng)前可讀取的緩存數(shù) 據(jù),確認(rèn)命令頭信息正確時,從緩存隊(duì)列文件中讀取qw工具記錄的數(shù)據(jù)長度;根據(jù)數(shù)據(jù)長 度,從緩存隊(duì)列文件從讀取用戶數(shù)據(jù);從緩存隊(duì)列文件從讀取'QEND'標(biāo)記,標(biāo)識該用戶數(shù)據(jù) 讀取完畢;將P文件的位置更新,繼續(xù)讀取下一條緩存數(shù)據(jù)。qr工具讀取完畢后根據(jù)命令頭 信息,按照約定的執(zhí)行動作,處理用戶數(shù)據(jù)。目前支持兩種動作,一個是轉(zhuǎn)發(fā),另一個是管道 輸出。
[0092] 轉(zhuǎn)發(fā)就是將該條用戶數(shù)據(jù)原樣發(fā)給另外一個緩存隊(duì)列,轉(zhuǎn)發(fā)過程中可以修改命令 頭,管道輸出是將用戶數(shù)據(jù)通過標(biāo)準(zhǔn)輸出交給外部的應(yīng)用程序,外部應(yīng)用程序循環(huán)從標(biāo)準(zhǔn) 輸入讀取數(shù)據(jù),數(shù)據(jù)格式為:前4個字節(jié)為數(shù)據(jù)長度,后面跟隨數(shù)據(jù)內(nèi)容,包含數(shù)據(jù)命令頭信 息,數(shù)據(jù)處理后通過標(biāo)準(zhǔn)輸出返回結(jié)果,結(jié)果可以占用一個字節(jié)。
[0093] qr工具讀取到緩存隊(duì)列中的該條數(shù)據(jù)記錄時,按照命令頭信息進(jìn)行動作處理;若 是管道輸出,則由本區(qū)域其他邏輯模塊從標(biāo)準(zhǔn)輸入中讀取數(shù)據(jù),讀到該條數(shù)據(jù)記錄后去進(jìn) 行相關(guān)處理;若命令頭信息指示的動作處理是轉(zhuǎn)發(fā),則qr工具按照q.conf文件中轉(zhuǎn)發(fā)目的 地址進(jìn)行轉(zhuǎn)發(fā),對應(yīng)數(shù)據(jù)服務(wù)器上的qw工具接收到用戶數(shù)據(jù)后寫入到緩存隊(duì)列中,由qr工 具進(jìn)行讀取,qr工具按照格式進(jìn)行處理。
[0094] 如圖2所示的,第一數(shù)據(jù)服務(wù)器可以將用戶數(shù)據(jù)提供給本區(qū)域的其他邏輯模塊,也 可以將用戶數(shù)據(jù)到第二數(shù)據(jù)服務(wù)器,由第二數(shù)據(jù)服務(wù)器的qw工具將用戶數(shù)據(jù)轉(zhuǎn)化為緩存數(shù) 據(jù)寫入本區(qū)域的緩存隊(duì)列中,供qr工具進(jìn)行處理,第二數(shù)據(jù)服務(wù)器的qr工具同樣可以將用 戶數(shù)據(jù)轉(zhuǎn)發(fā)給本區(qū)域的其他邏輯模塊,供其他模塊輸出使用;也可以將用戶數(shù)據(jù)再次轉(zhuǎn)發(fā) 給第三數(shù)據(jù)服務(wù)器。
[0095] 數(shù)據(jù)轉(zhuǎn)發(fā)可以轉(zhuǎn)發(fā)給中心區(qū)域的服務(wù)器,也可以轉(zhuǎn)發(fā)給其他區(qū)域的服務(wù)器。當(dāng)轉(zhuǎn) 發(fā)給中心區(qū)域的服務(wù)器時,是中心區(qū)域的服務(wù)器qr工具拿到數(shù)據(jù),按照前一個緩存隊(duì)列轉(zhuǎn) 發(fā)過來的命令頭信息去執(zhí)行動作,更新緩存隊(duì)列中的用戶數(shù)據(jù)。當(dāng)轉(zhuǎn)發(fā)給其他區(qū)域的服務(wù) 器時,是對應(yīng)區(qū)域的服務(wù)器qr工具拿到數(shù)據(jù),按照前一個緩存隊(duì)列轉(zhuǎn)發(fā)過來的命令頭信息 去執(zhí)行動作,更新緩存隊(duì)列中的用戶數(shù)據(jù)。
[0096] 可選的,若需要轉(zhuǎn)發(fā)到更多的數(shù)據(jù)服務(wù)器,則配置q.conf文件中對應(yīng)的轉(zhuǎn)發(fā)目的 地址和命令頭信息,在轉(zhuǎn)發(fā)目的地址對應(yīng)的數(shù)據(jù)服務(wù)器上部署qr工具和qw工具,就能按照 上述隊(duì)列機(jī)制進(jìn)行同步緩存了。
[0097] 例如:一個典型的q.conf文件如下:
[009!
[009<
[0100] q.conf文件中op表示動作,func是輸出數(shù)據(jù)的接口函數(shù),host表示轉(zhuǎn)發(fā)目的地址, port是轉(zhuǎn)發(fā)到的端口號,newid表示轉(zhuǎn)發(fā)后該數(shù)據(jù)的新命令頭。
[0101] 從q.conf文件的配置中看到該緩存隊(duì)列只支持一個命令I(lǐng)D是1001,該命令I(lǐng)D對應(yīng) 的動作序列同時包含2個動作,第一個是輸出數(shù)據(jù)內(nèi)容,即管道輸出,第二個是轉(zhuǎn)發(fā)給歷史 記錄數(shù)據(jù)服務(wù)器的緩存隊(duì)列,同時將命令I(lǐng)D修改為1002。
[0102] 每一個數(shù)據(jù)服務(wù)器在需要轉(zhuǎn)發(fā)給"XXX.XXX.XXX.XXX"這個轉(zhuǎn)發(fā)目的地址的時候, 就將用戶數(shù)據(jù)以命令1001交給本區(qū)域的緩存隊(duì)列處理,本區(qū)域的緩存隊(duì)列將用戶數(shù)據(jù)以命 令1002轉(zhuǎn)發(fā)給轉(zhuǎn)發(fā)目的地址對應(yīng)的數(shù)據(jù)服務(wù)器統(tǒng)一處理。
[0103] 這種隊(duì)列模式就實(shí)現(xiàn)了用戶在提交用戶數(shù)據(jù)時,各數(shù)據(jù)服務(wù)器都能同步更新處理 本地的緩存。
[0104] 除了在處理同步緩存時,在每一個數(shù)據(jù)服務(wù)器上進(jìn)行數(shù)據(jù)處理時,將處理任務(wù)整 體分割成幾個不同的緩存隊(duì)列,按照上述機(jī)制,就能將整體功能切割成若干個小的功能,每 個功能都能獨(dú)立化,其他模塊直接請求隊(duì)列處理即可,降低了復(fù)雜功能的耦合性,每個模塊 之間相互關(guān)聯(lián)性較低,系統(tǒng)相對穩(wěn)定可靠。如圖3所示的,數(shù)據(jù)處理可以分為隊(duì)列1、隊(duì)列 2、……、隊(duì)列η等η個處理隊(duì)列,通過這η個處理隊(duì)列的處理,輸出數(shù)據(jù)結(jié)果。
[0105] 本發(fā)明實(shí)施例的上述方法,采用同步緩存的方案是設(shè)計一種隊(duì)列機(jī)制,將緩存進(jìn) 行同步,同時也能用于對各復(fù)雜功能分隊(duì)列模塊化處理。本方法通過隊(duì)列的讀寫機(jī)制實(shí)現(xiàn) 數(shù)據(jù)緩存,可以做到以先進(jìn)先出的方式處理緩存同步,各數(shù)據(jù)服務(wù)器之間邏輯相互獨(dú)立,單 獨(dú)數(shù)據(jù)服務(wù)器內(nèi)部也能使用隊(duì)列機(jī)制處理,復(fù)雜功能可以分割,系統(tǒng)更加穩(wěn)定、健壯。
[0106] 基于同一發(fā)明構(gòu)思,本發(fā)明實(shí)施例還提供一種數(shù)據(jù)緩存實(shí)現(xiàn)系統(tǒng),該系統(tǒng)結(jié)構(gòu)如 同4所示,包括至少兩個數(shù)據(jù)服務(wù)器10。
[0107]數(shù)據(jù)服務(wù)器10,用于獲取本區(qū)域提交的用戶數(shù)據(jù)或其他區(qū)域的數(shù)據(jù)服務(wù)器轉(zhuǎn)發(fā)的 用戶數(shù)據(jù);為用戶數(shù)據(jù)添加命令頭信息和結(jié)束符得到緩存數(shù)據(jù),將緩存數(shù)據(jù)加入到本區(qū)域 緩存隊(duì)列中;其中,緩存數(shù)據(jù)包括命令頭信息、用戶數(shù)據(jù)和結(jié)束符,命令頭信息中包括指示 執(zhí)行動作的命令號;從本區(qū)域緩存隊(duì)列中讀取緩存數(shù)據(jù),解析出命令頭信息和用戶數(shù)據(jù),根 據(jù)包括的命令號對解析出的用戶數(shù)據(jù)執(zhí)行相應(yīng)的動作。
[0108]優(yōu)選的,上述數(shù)據(jù)服務(wù)器10,具體用于若根據(jù)命令號確定出對解析出的用戶數(shù)據(jù) 所要執(zhí)行的動作為管道輸出,將解析出的用戶數(shù)據(jù)輸出給對應(yīng)的應(yīng)用程序;若根據(jù)命令號 確定出對解析出的數(shù)據(jù)所要執(zhí)行的動作為轉(zhuǎn)發(fā),將解析出的用戶數(shù)據(jù)轉(zhuǎn)發(fā)給其他區(qū)域的數(shù) 據(jù)服務(wù)器。
[0109]優(yōu)選的,上述數(shù)據(jù)服務(wù)器10,具體用于確定命令號對應(yīng)的管道輸出的命令頭信息, 將解析出的用戶數(shù)據(jù)添加所述管道輸出的命令頭信息后輸出給對應(yīng)的應(yīng)用程序;
[0110] 優(yōu)選的,上述數(shù)據(jù)服務(wù)器10,具體用于確定命令號對應(yīng)的轉(zhuǎn)發(fā)目的地址和轉(zhuǎn)發(fā)后 需使用的新的命令頭信息,將解析出的用戶數(shù)據(jù)和新的命令頭信息提供給與轉(zhuǎn)發(fā)目的地址 對應(yīng)的其他區(qū)域的數(shù)據(jù)服務(wù)器。
[0111] 優(yōu)選的,上述數(shù)據(jù)服務(wù)器10中設(shè)置讀隊(duì)列工具,通過讀隊(duì)列工具從本區(qū)域緩存隊(duì) 列中讀取緩存數(shù)據(jù);該讀隊(duì)列工具配置q文件記錄本區(qū)域緩存隊(duì)列的文件地址和文件名;配 置P文件記錄本區(qū)域緩存隊(duì)列中的文件處理位置信息;配置1文件保證單份實(shí)例運(yùn)行;配置 q.conf文件以實(shí)現(xiàn)配置管道輸出的命令頭信息、轉(zhuǎn)發(fā)目的地址和轉(zhuǎn)發(fā)后需使用的新的命令 頭信息。
[0112]優(yōu)選的,上述數(shù)據(jù)服務(wù)器10中設(shè)置寫隊(duì)列工具,通過寫隊(duì)列工具為用戶數(shù)據(jù)添加 命令頭信息和結(jié)束符;其中,命令頭信息包括版本號、命令號、保留字節(jié)和數(shù)據(jù)長度。
[0113] 數(shù)據(jù)服務(wù)器10的結(jié)構(gòu)如圖5所示,包括:獲取模塊101、緩存模塊102和執(zhí)行模塊 103〇
[0114] 獲取模塊101,用于獲取本區(qū)域提交的用戶數(shù)據(jù)或其他區(qū)域的數(shù)據(jù)服務(wù)器轉(zhuǎn)發(fā)的 用戶數(shù)據(jù)。
[0115] 緩存模塊102,用于為用戶數(shù)據(jù)添加命令頭信息和結(jié)束符得到緩存數(shù)據(jù),將緩存數(shù) 據(jù)加入到本區(qū)域緩存隊(duì)列中;其中,緩存數(shù)據(jù)包括命令頭信息、用戶數(shù)據(jù)和結(jié)束符,命令頭 信息中包括指示執(zhí)行動作的命令號。
[0116] 執(zhí)行模塊103,用于從本區(qū)域緩存隊(duì)列中讀取緩存數(shù)據(jù),解析出命令頭信息和用戶 數(shù)據(jù),根據(jù)包括的命令號對解析出的用戶數(shù)據(jù)執(zhí)行相應(yīng)的動作。
[0117] 優(yōu)選的,上述執(zhí)行模塊103,具體用于若根據(jù)命令號確定出對解析出的用戶數(shù)據(jù)所 要執(zhí)行的動作為管道輸出,將解析出的用戶數(shù)據(jù)輸出給對應(yīng)的應(yīng)用程序;若根據(jù)命令號確 定出對解析出的用戶數(shù)據(jù)所要執(zhí)行的動作為轉(zhuǎn)發(fā),將解析出的用戶數(shù)據(jù)轉(zhuǎn)發(fā)給其他區(qū)域的 數(shù)據(jù)服務(wù)器。
[0118] 優(yōu)選的,上述執(zhí)行模塊103,具體用于確定命令號對應(yīng)的管道輸出的命令頭信息, 將解析出的用戶數(shù)據(jù)添加所述管道輸出的命令頭信息后輸出給對應(yīng)的應(yīng)用程序;
[0119] 優(yōu)選的,上述執(zhí)行模塊103,具體用于確定命令號對應(yīng)的轉(zhuǎn)發(fā)目的地址和轉(zhuǎn)發(fā)后需 使用的新的命令頭信息,將解析出的用戶數(shù)據(jù)和新的命令頭信息提供給與轉(zhuǎn)發(fā)目的地址對 應(yīng)的其他區(qū)域的數(shù)據(jù)服務(wù)器。
[0120]優(yōu)選的,上述執(zhí)行模塊103中設(shè)置讀隊(duì)列工具,通過讀隊(duì)列工具從本區(qū)域緩存隊(duì)列 中讀取緩存數(shù)據(jù);該讀隊(duì)列工具配置q文件記錄本區(qū)域緩存隊(duì)列的文件地址和文件名;配置 P文件記錄本區(qū)域緩存隊(duì)列中的文件處理位置信息;配置1文件保證單份實(shí)例運(yùn)行;配置 q.conf文件以實(shí)現(xiàn)配置管道輸出的命令頭信息、轉(zhuǎn)發(fā)目的地址和轉(zhuǎn)發(fā)后需使用的新的命令 頭信息。
[0121]優(yōu)選的,上述緩存模塊102中設(shè)置寫隊(duì)列工具,通過寫隊(duì)列工具為用戶數(shù)據(jù)添加命 令頭信息和結(jié)束符;其中,命令頭信息包括版本號、命令號、保留字節(jié)和數(shù)據(jù)長度。
[0122] 本領(lǐng)域技術(shù)人員還可以了解到本發(fā)明實(shí)施例列出的各種說明性邏輯塊 (illustrative logical block),單元,和步驟可以通過電子硬件、電腦軟件,或兩者的結(jié) 合進(jìn)行實(shí)現(xiàn)。為清楚展示硬件和軟件的可替換性(:!^丨6代1^1^6313;[1;^7),上述的各種說明 性部件(illustrative components),單元和步驟已經(jīng)通用地描述了它們的功能。這樣的功 能是通過硬件還是軟件來實(shí)現(xiàn)取決于特定的應(yīng)用和整個系統(tǒng)的設(shè)計要求。本領(lǐng)域技術(shù)人員 可以對于每種特定的應(yīng)用,可以使用各種方法實(shí)現(xiàn)所述的功能,但這種實(shí)現(xiàn)不應(yīng)被理解為 超出本發(fā)明實(shí)施例保護(hù)的范圍。
[0123] 本發(fā)明實(shí)施例中所描述的各種說明性的邏輯塊,或單元都可以通過通用處理器, 數(shù)字信號處理器,專用集成電路(ASIC),現(xiàn)場可編程門陣列或其它可編程邏輯裝置,離散門 或晶體管邏輯,離散硬件部件,或上述任何組合的設(shè)計來實(shí)現(xiàn)或操作所描述的功能。通用處 理器可以為微處理器,可選地,該通用處理器也可以為任何傳統(tǒng)的處理器、控制器、微控制 器或狀態(tài)機(jī)。處理器也可以通過計算裝置的組合來實(shí)現(xiàn),例如數(shù)字信號處理器和微處理器, 多個微處理器,一個或多個微處理器聯(lián)合一個數(shù)字信號處理器核,或任何其它類似的配置 來實(shí)現(xiàn)。
[0124] 本發(fā)明實(shí)施例中所描述的方法或算法的步驟可以直接嵌入硬件、處理器執(zhí)行的軟 件模塊、或者這兩者的結(jié)合。軟件模塊可以存儲于RAM存儲器、閃存、ROM存儲器、EPROM存儲 器、EEPROM存儲器、寄存器、硬盤、可移動磁盤、CD-ROM或本領(lǐng)域中其它任意形式的存儲媒介 中。示例性地,存儲媒介可以與處理器連接,以使得處理器可以從存儲媒介中讀取信息,并 可以向存儲媒介存寫信息??蛇x地,存儲媒介還可以集成到處理器中。處理器和存儲媒介可 以設(shè)置于ASIC中,ASIC可以設(shè)置于用戶終端中??蛇x地,處理器和存儲媒介也可以設(shè)置于用 戶終端中的不同的部件中。
[0125] 在一個或多個示例性的設(shè)計中,本發(fā)明實(shí)施例所描述的上述功能可以在硬件、軟 件、固件或這三者的任意組合來實(shí)現(xiàn)。如果在軟件中實(shí)現(xiàn),這些功能可以存儲與電腦可讀的 媒介上,或以一個或多個指令或代碼形式傳輸于電腦可讀的媒介上。電腦可讀媒介包括電 腦存儲媒介和便于使得讓電腦程序從一個地方轉(zhuǎn)移到其它地方的通信媒介。存儲媒介可以 是任何通用或特殊電腦可以接入訪問的可用媒體。例如,這樣的電腦可讀媒體可以包括但 不限于RAM、R0M、EEPR0M、⑶-R0M或其它光盤存儲、磁盤存儲或其它磁性存儲裝置,或其它任 何可以用于承載或存儲以指令或數(shù)據(jù)結(jié)構(gòu)和其它可被通用或特殊電腦、或通用或特殊處理 器讀取形式的程序代碼的媒介。此外,任何連接都可以被適當(dāng)?shù)囟x為電腦可讀媒介,例 如,如果軟件是從一個網(wǎng)站站點(diǎn)、服務(wù)器或其它遠(yuǎn)程資源通過一個同軸電纜、光纖電纜、雙 絞線、數(shù)字用戶線(DSL)或以例如紅外、無線和微波等無線方式傳輸?shù)囊脖话谒x的 電腦可讀媒介中。所述的碟片(disk)和磁盤(disc)包括壓縮磁盤、錯射盤、光盤、DVD、軟盤 和藍(lán)光光盤,磁盤通常以磁性復(fù)制數(shù)據(jù),而碟片通常以激光進(jìn)行光學(xué)復(fù)制數(shù)據(jù)。上述的組合 也可以包含在電腦可讀媒介中。
[0126]以上所述的【具體實(shí)施方式】,對本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步 詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的【具體實(shí)施方式】而已,并不用于限定本發(fā)明 的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含 在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1. 一種數(shù)據(jù)緩存實(shí)現(xiàn)方法,其特征在于,包括: 獲取本區(qū)域提交的用戶數(shù)據(jù)或其他區(qū)域的數(shù)據(jù)服務(wù)器轉(zhuǎn)發(fā)的用戶數(shù)據(jù); 為用戶數(shù)據(jù)添加命令頭信息和結(jié)束符得到緩存數(shù)據(jù),將緩存數(shù)據(jù)加入到本區(qū)域緩存隊(duì) 列中;所述緩存數(shù)據(jù)包括命令頭信息、用戶數(shù)據(jù)和結(jié)束符,所述命令頭信息中包括指示執(zhí)行 動作的命令號; 從本區(qū)域緩存隊(duì)列中讀取緩存數(shù)據(jù),解析出所述命令頭信息和用戶數(shù)據(jù),根據(jù)包括的 所述命令號對解析出的用戶數(shù)據(jù)執(zhí)行相應(yīng)的動作。2. 如權(quán)利要求1所述的方法,其特征在于,根據(jù)包括的所述命令號對解析出的用戶數(shù)據(jù) 執(zhí)行相應(yīng)的動作,具體包括: 若根據(jù)所述命令號確定出對解析出的用戶數(shù)據(jù)所要執(zhí)行的動作為管道輸出,將解析出 的用戶數(shù)據(jù)輸出給對應(yīng)的應(yīng)用程序; 若根據(jù)所述命令號確定出對解析出的用戶數(shù)據(jù)所要執(zhí)行的動作為轉(zhuǎn)發(fā),將解析出的用 戶數(shù)據(jù)轉(zhuǎn)發(fā)給其他區(qū)域的數(shù)據(jù)服務(wù)器。3. 如權(quán)利要求2所述的方法,其特征在于,所述將解析出的用戶數(shù)據(jù)輸出給對應(yīng)的應(yīng)用 程序,具體包括: 確定所述命令號對應(yīng)的管道輸出的命令頭信息,將解析出的用戶數(shù)據(jù)添加所述管道輸 出的命令頭信息后輸出給對應(yīng)的應(yīng)用程序; 所述將解析出的用戶數(shù)據(jù)轉(zhuǎn)發(fā)給其他區(qū)域的數(shù)據(jù)服務(wù)器,具體包括: 確定所述命令號對應(yīng)的轉(zhuǎn)發(fā)目的地址和轉(zhuǎn)發(fā)后需使用的新的命令頭信息,將解析出的 用戶數(shù)據(jù)和新的命令頭信息提供給與轉(zhuǎn)發(fā)目的地址對應(yīng)的其他區(qū)域的數(shù)據(jù)服務(wù)器。4. 如權(quán)利要求3所述的方法,其特征在于,通過讀隊(duì)列工具從本區(qū)域緩存隊(duì)列中讀取緩 存數(shù)據(jù); 所述讀隊(duì)列工具配置q文件記錄本區(qū)域緩存隊(duì)列的文件地址和文件名;配置P文件記錄 本區(qū)域緩存隊(duì)列中的文件處理位置信息;配置1文件保證單份實(shí)例運(yùn)行;配置q.conf文件以 實(shí)現(xiàn)配置管道輸出的命令頭信息、轉(zhuǎn)發(fā)目的地址和轉(zhuǎn)發(fā)后需使用的新的命令頭信息。5. 如權(quán)利要求1-4任一所述的方法,其特征在于,通過寫隊(duì)列工具為用戶數(shù)據(jù)添加命令 頭信息和結(jié)束符;其中,命令頭信息包括版本號、命令號、保留字節(jié)和數(shù)據(jù)長度。6. -種數(shù)據(jù)服務(wù)器,其特征在于,包括: 獲取模塊,用于獲取本區(qū)域提交的用戶數(shù)據(jù)或其他區(qū)域的數(shù)據(jù)服務(wù)器轉(zhuǎn)發(fā)的用戶數(shù) 據(jù); 緩存模塊,用于為用戶數(shù)據(jù)添加命令頭信息和結(jié)束符得到緩存數(shù)據(jù),將緩存數(shù)據(jù)加入 到本區(qū)域緩存隊(duì)列中;所述緩存數(shù)據(jù)包括命令頭信息、用戶數(shù)據(jù)和結(jié)束符,所述命令頭信息 中包括指示執(zhí)行動作的命令號; 執(zhí)行模塊,用于從本區(qū)域緩存隊(duì)列中讀取緩存數(shù)據(jù),解析出所述命令頭信息和用戶數(shù) 據(jù),根據(jù)包括的所述命令號對解析出的用戶數(shù)據(jù)執(zhí)行相應(yīng)的動作。7. 如權(quán)利要求6所述的數(shù)據(jù)服務(wù)器,其特征在于,所述執(zhí)行模塊,具體用于: 若根據(jù)所述命令號確定出對解析出的用戶數(shù)據(jù)所要執(zhí)行的動作為管道輸出,將解析出 的用戶數(shù)據(jù)輸出給對應(yīng)的應(yīng)用程序; 若根據(jù)所述命令號確定出對解析出的用戶數(shù)據(jù)所要執(zhí)行的動作為轉(zhuǎn)發(fā),將解析出的用 戶數(shù)據(jù)轉(zhuǎn)發(fā)給其他區(qū)域的數(shù)據(jù)服務(wù)器。8. 如權(quán)利要求7所述的數(shù)據(jù)服務(wù)器,其特征在于,所述執(zhí)行模塊中設(shè)置讀隊(duì)列工具,通 過讀隊(duì)列工具從本區(qū)域緩存隊(duì)列中讀取緩存數(shù)據(jù); 所述讀隊(duì)列工具配置q文件記錄本區(qū)域緩存隊(duì)列的文件地址和文件名;配置P文件記錄 本區(qū)域緩存隊(duì)列中的文件處理位置信息;配置1文件保證單份實(shí)例運(yùn)行;配置q.conf文件以 實(shí)現(xiàn)配置管道輸出的命令頭信息、轉(zhuǎn)發(fā)目的地址和轉(zhuǎn)發(fā)后需使用的新的命令頭信息。9. 如權(quán)利要求6-8任一所述的數(shù)據(jù)服務(wù)器,其特征在于,緩存模塊中設(shè)置寫隊(duì)列工具, 通過寫隊(duì)列工具為用戶數(shù)據(jù)添加命令頭信息和結(jié)束符;其中,命令頭信息包括版本號、命令 號、保留字節(jié)和數(shù)據(jù)長度。10. -種數(shù)據(jù)緩存實(shí)現(xiàn)系統(tǒng),其特征在于,包括:至少兩個如權(quán)利要求6-9任一所述數(shù)據(jù) 服務(wù)器。
【文檔編號】G06F17/30GK105843911SQ201610171603
【公開日】2016年8月10日
【申請日】2016年3月24日
【發(fā)明人】王旋
【申請人】新浪網(wǎng)技術(shù)(中國)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
哈尔滨市| 汕尾市| 阳高县| 西乌| 巨野县| 旬邑县| 丹阳市| 车致| 根河市| 高唐县| 长丰县| 聂拉木县| 广宁县| 囊谦县| 洞头县| 南澳县| 绵竹市| 论坛| 洛南县| 渝北区| 遵义县| 措美县| 柘荣县| 即墨市| 洛宁县| 清新县| 德令哈市| 阳春市| 昔阳县| 清远市| 鄂伦春自治旗| 枣强县| 保亭| 乳山市| 敖汉旗| 伊吾县| 岳西县| 西城区| 东方市| 沙河市| 甘孜县|