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

一種基于元數(shù)據(jù)管理的分布式緩存客戶端的制作方法

文檔序號:7854002閱讀:188來源:國知局
專利名稱:一種基于元數(shù)據(jù)管理的分布式緩存客戶端的制作方法
技術領域
本發(fā)明涉及一種計算機領域,特別是涉及一種基于元數(shù)據(jù)管理的分布式緩存客戶端。
背景技術
分布式,是指在核心系統(tǒng)外部,通過一個集群方式實現(xiàn)的某項功能。Memcached是目前使用范圍最廣泛的一個分布式緩存實現(xiàn)。Memcached盡管是“分布式”的緩存服務器,但服務器端并沒有分布式功能。各個Memcached節(jié)點間不會互相通信以共享信息,對分布式的支持完全取決于客戶端的實現(xiàn)。目前的Memcache客戶端,一般通過資源池的方式實現(xiàn)分布式,資源調度算法主要 有“余數(shù)計算法”和“一致哈希計算法”,采用“余數(shù)計算法”的客戶端,在緩存服務器數(shù)目有變化時,會引發(fā)大面積的緩存重組,嚴重影響緩存命中率。而“一致哈希計算法”的復雜度高于“余數(shù)計算法”,在緩存服務器數(shù)目變化時,影響面積小于“余數(shù)計算法”,但也同樣會產(chǎn)生緩存重組,降低緩存命中率。另外,目前的Memcache客戶端實現(xiàn)均不支持副本功能。所以,有必要提出一種新的技術,以解決在分布式緩存的環(huán)境中,當緩存節(jié)點(月艮務器)數(shù)目有變化,或者某些緩存節(jié)點失效的情況下,所引起的緩存重組、命中率大幅度降低,以及客戶端實現(xiàn)均不支持副本功能的問題。

發(fā)明內容
本發(fā)明的目的在于提供一種基于元數(shù)據(jù)管理的分布式緩存客戶端,采用元數(shù)據(jù)存儲的方式實現(xiàn)Memcached客戶端,可以解決在分布式緩存的環(huán)境中,當緩存節(jié)點數(shù)目有變化,或者某些緩存節(jié)點失效的情況下所引起的緩存重組、命中率大幅度降低,以及客戶端不支持副本功能的問題。為了解決以下技術問題,本發(fā)明提供一種基于元數(shù)據(jù)管理的分布式緩存客戶端,包括元數(shù)據(jù)管理模塊、心跳服務模塊、負載均衡模塊,所述元數(shù)據(jù)管理模塊,用于提供元數(shù)據(jù)支持,并對元數(shù)據(jù)進行管理;所述心跳服務模塊,用于向緩存節(jié)點發(fā)送心跳消息,并記錄存儲其響應時間到元數(shù)據(jù)中;所述負載均衡模塊,根據(jù)元數(shù)據(jù)中存儲的緩存節(jié)點存儲情況以及心跳服務模塊提供的緩存節(jié)點響應時間,確定最優(yōu)緩存節(jié)點,再從該最優(yōu)緩存節(jié)點下載緩存數(shù)據(jù)。進一步地,所述心跳服務模塊向緩存節(jié)點發(fā)送心跳消息,如果該緩存節(jié)點在多次心跳后均無響應,則認為該緩存節(jié)點失效,從緩存節(jié)點元數(shù)據(jù)中移除該緩存節(jié)點。進一步地,所述緩存客戶端還進一步包括副本管理模塊,用于在某個緩存節(jié)點存在大并發(fā)用戶訪問時,對其緩存數(shù)據(jù)建立副本。進一步地,所述副本管理模塊建立副本過程如下將緩存數(shù)據(jù)從主節(jié)點,按照負載均衡算法計算出一系列副本節(jié)點,以異步形式將緩存數(shù)據(jù)從主節(jié)點復制到多個副本節(jié)點上,同時將副本的位置信息記錄到元數(shù)據(jù)中。進一步地,所述負載均衡模塊包括放置緩存子模塊與下載緩存子模塊,所述放置緩存子模塊,用于從存儲的元數(shù)據(jù)中確定出最優(yōu)緩存節(jié)點;所述下載緩存子模塊,用于從最優(yōu)緩存節(jié)點的存儲位置下載緩存數(shù)據(jù)。進一步地,所述放置緩存子模塊確定出最優(yōu)緩存節(jié)點的方法是當緩存數(shù)據(jù)沒有副本時,根據(jù)元數(shù)據(jù)中存儲的緩存節(jié)點存儲情況以及響應時間,確定最優(yōu)緩存節(jié)點;當緩存數(shù)據(jù)有副本時,用戶的請求在緩存主體創(chuàng)建完成后即返回,再排除掉主體所在緩存節(jié)點,根據(jù)元數(shù)據(jù)中存儲的緩存節(jié)點存儲情況以及響應時間,逐一確定副本所在的最優(yōu)緩存節(jié)點,副本數(shù)據(jù)的創(chuàng)建是以異步方式進行。進一步地,所述緩存客戶端還進一步包括失效管理模塊,用于在緩存數(shù)據(jù)失效時清理客戶端的元數(shù)據(jù)。 進一步地,所述失效管理模塊采用優(yōu)先隊列來記錄所有緩存數(shù)據(jù)的失效時間信息,在失效時間到后,自動清理掉緩存數(shù)據(jù)。與現(xiàn)有技術相比,本發(fā)明提供一種基于元數(shù)據(jù)管理的分布式緩存客戶端,采用元數(shù)據(jù)存儲的方式實現(xiàn)Memcached客戶端,提供細粒度的調度算法,精確控制緩存數(shù)據(jù)的分布,并可對緩存服務器的狀態(tài)進行監(jiān)控。支持通過緩存服務器響應時間、剩余空間等多個參數(shù)計算緩存分布。此外,本發(fā)明采用緩存副本,副本在第一個緩存數(shù)據(jù)創(chuàng)建后,通過異步方式在多個節(jié)點間復制,多副本緩存可在用戶并發(fā)訪問時提供更高的性能,在緩存服務器數(shù)目有變化時,不會產(chǎn)生緩存重組現(xiàn)象,在緩存服務器集群中某些節(jié)點宕機時,用戶可從副本節(jié)點獲取緩存,不影響緩存命中率;在有用戶并發(fā)訪問的情況下,客戶可將請求中轉到多個副本服務器,減低單點并發(fā)所產(chǎn)生的IO瓶頸。


此處所說明的附圖用來提供對本發(fā)明的進一步理解,構成本發(fā)明的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構成對本發(fā)明的不當限定。在附圖中圖I是本發(fā)明提供一種基于元數(shù)據(jù)管理的分布式緩存實現(xiàn)系統(tǒng)的結構示意圖。圖2是本發(fā)明提供一種基于元數(shù)據(jù)管理的分布式緩存客戶端的結構示意圖。
具體實施例方式為了使本發(fā)明所要解決的技術問題、技術方案及有益效果更加清楚、明白,以下結合附圖和實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。如圖I所示,本發(fā)明提供一種基于元數(shù)據(jù)管理的分布式緩存實現(xiàn)系統(tǒng),包括用戶
10、緩存客戶端20、至少包含一個緩存節(jié)點30,其中,緩存客戶端20,位于用戶10與緩存節(jié)點30之間,用于接收和中轉用戶10請求,并管理多個緩存節(jié)點30的元數(shù)據(jù)信息,實現(xiàn)分布式功能。緩存節(jié)點30,用于存取數(shù)據(jù),以Memcached來實現(xiàn)。當用戶10訪問緩存節(jié)點30時,首先通過緩存客戶端20獲取實際緩存節(jié)點30的元數(shù)據(jù)信息,再根據(jù)元數(shù)據(jù)信息直接訪問緩存節(jié)點30存取數(shù)據(jù),實現(xiàn)控制流與數(shù)據(jù)流分離。
如圖2所示,本發(fā)明提供一種基于元數(shù)據(jù)管理的分布式緩存客戶端,所述緩存客戶端位于用戶與緩存節(jié)點之間,用于接收和中轉用戶請求,并管理多個緩存節(jié)點的元數(shù)據(jù)信息,實現(xiàn)分布式功能,包括元數(shù)據(jù)管理模塊21、心跳服務模塊22、副本管理模塊23、失效管理模塊24、負載均衡模塊25。元數(shù)據(jù)管理模塊21 : 用于提供元數(shù)據(jù)支持,對緩存元數(shù)據(jù)、副本元數(shù)據(jù)、緩存節(jié)點元數(shù)據(jù)進行管理。其中,緩存元數(shù)據(jù)包含緩存數(shù)據(jù)的key、大小、位置等信息。副本元數(shù)據(jù)包含緩存副本的主數(shù)據(jù)位置、副本分布位置等信息。緩存節(jié)點元數(shù)據(jù)包含緩存服務器的IP、存儲空間、響應時間等信息。心跳服務模塊22 :用于向緩存節(jié)點發(fā)送心跳消息,并記錄存儲其響應時間到緩存節(jié)點元數(shù)據(jù)中。如果某個緩存節(jié)點在多次心跳后均無響應,則認為此緩存節(jié)點失效,從緩存節(jié)點元數(shù)據(jù)中移除此緩存節(jié)點。副本管理模塊23:用于在某個緩存節(jié)點存在大并發(fā)用戶訪問時,對其緩存數(shù)據(jù)建立副本,平衡用戶的并發(fā)請求。建立過程是當緩存節(jié)點需要副本支持時,將緩存數(shù)據(jù)從主節(jié)點,按照負載均衡算法計算出一系列副本節(jié)點,并以異步形式將緩存數(shù)據(jù)從主節(jié)點復制到多個副本節(jié)點上,同時將副本的位置信息記錄到緩存節(jié)點元數(shù)據(jù)中。這樣,當某個緩存可能存在大并發(fā)的用戶訪問時,對其建立副本后,多個副本可平衡用戶的并發(fā)請求,提高IO效率。失效管理模塊24 :用于在緩存數(shù)據(jù)失效時同步清理客戶端的元數(shù)據(jù)。緩存的一個特性就是“臨時性”,用戶在存放緩存數(shù)據(jù)時,需要確定其有效時間,有效時間過后,此緩存數(shù)據(jù)會被系統(tǒng)自動清理掉。失效管理模塊采用一個優(yōu)先隊列來記錄所有緩存數(shù)據(jù)的失效時間信息,并循環(huán)以下步驟來檢測數(shù)據(jù)失效并清理I、根據(jù)緩存數(shù)據(jù)的失效時間,將其插入到優(yōu)先隊列的適當位置??梢园词r間的升序或降序來排列。2、檢測隊列頭的元素的有效時間是否超時。3、如果超時,則彈出隊列頭。4、獲取隊列頭的元素的有效時間與當前時間的差值,按此差值休眠檢測線程。負載均衡模塊25 :根據(jù)緩存節(jié)點元數(shù)據(jù)中存儲的各個緩存節(jié)點的存儲情況以及心跳服務模塊提供的緩存節(jié)點響應時間,確定出一個最優(yōu)緩存節(jié)點,再從該最優(yōu)緩存節(jié)點下載緩存數(shù)據(jù)。此負載均衡模塊包括放置緩存子模塊與下載緩存子模塊。放置緩存子模塊從存儲的緩存節(jié)點元數(shù)據(jù)中確定出一個最優(yōu)緩存節(jié)點;確定的具體方法是當緩存數(shù)據(jù)沒有副本時,根據(jù)緩存節(jié)點元數(shù)據(jù)中存儲的各個緩存節(jié)點的存儲情況以及響應時間,確定出一個最優(yōu)緩存節(jié)點;當緩存數(shù)據(jù)有副本時,用戶的請求在緩存主體創(chuàng)建完成后即返回,再排除掉主體所在緩存節(jié)點,根據(jù)元數(shù)據(jù)中存儲的緩存節(jié)點存儲情況以及響應時間,逐一確定副本所在的最優(yōu)緩存節(jié)點,副本數(shù)據(jù)的創(chuàng)建是以異步方式進行。下載緩存子模塊從確定的最優(yōu)緩存節(jié)點的存儲位置下載緩存數(shù)據(jù)。本發(fā)明提供一種基于元數(shù)據(jù)管理的分布式緩存客戶端,采用元數(shù)據(jù)存儲的方式實現(xiàn)Memcached客戶端,提供細粒度的調度算法,精確控制緩存數(shù)據(jù)的分布,并可對緩存服務器的狀態(tài)進行監(jiān)控。支持通過緩存服務器響應時間、剩余空間等多個參數(shù)計算緩存分布。此外,本發(fā)明采用緩存副本,副本在第一個緩存數(shù)據(jù)創(chuàng)建后,通過異步方式在多個節(jié)點間復制,多副本緩存可在用戶并發(fā)訪問時提供更高的性能,在緩存服務器數(shù)目有變化時,不會產(chǎn)生緩存重組現(xiàn)象,在緩存服務器集群中某些節(jié)點宕機時,用戶可從副本節(jié)點獲取緩存,不影響緩存命中率;在有用戶并發(fā)訪問的情況下,客戶可將請求中轉到多個副本服務器,減低單點并發(fā)所產(chǎn)生的IO瓶頸。 上述說明示出并描述了本發(fā)明的一個優(yōu)選實施例,但如前所述,應當理解本發(fā)明并非局限于本文所披露的形式,不應看作是對其他實施例的排除,而可用于各種其他組合、修改和環(huán)境,并能夠在本文所述發(fā)明構想范圍內,通過上述教導或相關領域的技術或知識進行改動。而本領域人員所進行的改動和變化不脫離本發(fā)明的精神和范圍,則都應在本發(fā)明所附權利要求的保護范圍內。
權利要求
1.一種基于元數(shù)據(jù)管理的分布式緩存客戶端,其特征在于,包括元數(shù)據(jù)管理模塊、心跳服務模塊、負載均衡模塊, 所述元數(shù)據(jù)管理模塊,用于提供元數(shù)據(jù)支持,并對元數(shù)據(jù)進行管理; 所述心跳服務模塊,用于向緩存節(jié)點發(fā)送心跳消息,并記錄存儲其響應時間到元數(shù)據(jù)中; 所述負載均衡模塊,根據(jù)元數(shù)據(jù)中存儲的緩存節(jié)點存儲情況以及心跳服務模塊提供的緩存節(jié)點響應時間,確定最優(yōu)緩存節(jié)點,再從該最優(yōu)緩存節(jié)點下載緩存數(shù)據(jù)。
2.如權利要求I所述的客戶端,其特征在于,所述心跳服務模塊向緩存節(jié)點發(fā)送心跳消息,如果該緩存節(jié)點在多次心跳后均無響應,則認為該緩存節(jié)點失效,從緩存節(jié)點元數(shù)據(jù)中移除該緩存節(jié)點。
3.如權利要求I所述的客戶端,其特征在于,所述緩存客戶端還進一步包括副本管理模塊,用于在某個緩存節(jié)點存在大并發(fā)用戶訪問時,對其緩存數(shù)據(jù)建立副本。
4.如權利要求3所述的客戶端,其特征在于,所述副本管理模塊建立副本過程如下將緩存數(shù)據(jù)從主節(jié)點,按照負載均衡算法計算出一系列副本節(jié)點,以異步形式將緩存數(shù)據(jù)從主節(jié)點復制到多個副本節(jié)點上,同時將副本的位置信息記錄到元數(shù)據(jù)中。
5.如權利要求I所述的客戶端,其特征在于,所述負載均衡模塊包括放置緩存子模塊與下載緩存子模塊, 所述放置緩存子模塊,用于從存儲的元數(shù)據(jù)中確定出最優(yōu)緩存節(jié)點; 所述下載緩存子模塊,用于從最優(yōu)緩存節(jié)點的存儲位置下載緩存數(shù)據(jù)。
6.如權利要求5所述的客戶端,其特征在于,所述放置緩存子模塊確定出最優(yōu)緩存節(jié)點的方法是當緩存數(shù)據(jù)沒有副本時,根據(jù)元數(shù)據(jù)中存儲的緩存節(jié)點存儲情況以及響應時間,確定最優(yōu)緩存節(jié)點;當緩存數(shù)據(jù)有副本時,用戶的請求在緩存主體創(chuàng)建完成后即返回,再排除掉主體所在緩存節(jié)點,根據(jù)元數(shù)據(jù)中存儲的緩存節(jié)點存儲情況以及響應時間,逐一確定副本所在的最優(yōu)緩存節(jié)點。
7.如權利要求I所述的客戶端,其特征在于,所述緩存客戶端還進一步包括失效管理模塊,用于在緩存數(shù)據(jù)失效時清理客戶端的元數(shù)據(jù)。
8.如權利要求7所述的客戶端,其特征在于,所述失效管理模塊采用優(yōu)先隊列來記錄所有緩存數(shù)據(jù)的失效時間信息,在失效時間到后,自動清理掉緩存數(shù)據(jù)。
全文摘要
本發(fā)明提供一種基于元數(shù)據(jù)管理的分布式緩存客戶端,包括元數(shù)據(jù)管理模塊、心跳服務模塊、負載均衡模塊,所述元數(shù)據(jù)管理模塊,用于提供元數(shù)據(jù)支持,并對元數(shù)據(jù)進行管理;所述心跳服務模塊,用于向緩存節(jié)點發(fā)送心跳消息,并記錄存儲其響應時間到元數(shù)據(jù)中;所述負載均衡模塊,根據(jù)元數(shù)據(jù)中存儲的緩存節(jié)點存儲情況以及心跳服務模塊提供的緩存節(jié)點響應時間,確定最優(yōu)緩存節(jié)點,再從該最優(yōu)緩存節(jié)點下載緩存數(shù)據(jù)。通過本發(fā)明提供一種基于元數(shù)據(jù)管理的分布式緩存實現(xiàn)方法及系統(tǒng),可以解決在分布式緩存的環(huán)境中,當緩存節(jié)點數(shù)目有變化,或者某些緩存節(jié)點失效的情況下所引起的緩存重組、命中率大幅度降低,以及客戶端不支持副本功能的問題。
文檔編號H04L29/08GK102724314SQ20121020526
公開日2012年10月10日 申請日期2012年6月20日 優(yōu)先權日2012年6月20日
發(fā)明者高正 申請人:深圳市遠行科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
鄂托克旗| 武义县| 邯郸县| 尚志市| 探索| 伊川县| 巨鹿县| 南召县| 安丘市| 新干县| 宣武区| 且末县| 澄迈县| 贡觉县| 保康县| 大渡口区| 皋兰县| 历史| 海盐县| 敖汉旗| 福建省| 穆棱市| 沾化县| 榆中县| 沙湾县| 普洱| 博白县| 皮山县| 洪江市| 吉木萨尔县| 图木舒克市| 沙田区| 台湾省| 桂林市| 磴口县| 徐闻县| 肇东市| 双柏县| 宣武区| 逊克县| 镇巴县|