一種使Zookeeper的讀性能支持水平擴展的系統及方法。所述方法包括:包括兩個或更多個讀訪問服務器的讀訪問服務器集群,用于完成客戶端對Zookeeper的讀數據請求的響應;以及Zookeeper服務集群,用于通過Watcher機制將修改內容推送到所述讀訪問服務器集群中的所述兩個或更多個讀訪問服務器。
【技術實現步驟摘要】
本專利技術涉及使Zooke印er的讀性能支持水平擴展的系統和方法。
技術介紹
Zookeeper是一種可靠存儲狀態的分布式發布系統,在需要提供可靠的狀態存儲時,通常需要使用Zookeeper。然而,Zookeeper不是一種可以水平擴展的系統,存在性能瓶頸。因此,Zookeeper無法支持大量的讀數據請求。所以,期望提供一種能使Zook^per的讀性能支持水平擴展的系統和方法。
技術實現思路
為了解決現有技術中的上述缺點和問題而提出本專利技術。根據一個方面,本專利技術提出一種使Zooke印er的讀性能支持水平擴展的系統,包括:包括兩個或更多個讀訪問服務器的讀訪問服務器集群,用于完成客戶端對Zookeeper的讀數據請求的響應;以及Zookeeper服務集群,用于通過Watcher機制將修改內容推送到所述讀訪問服務器集群中的所述兩個或更多個讀訪問服務器。可選地,所述讀訪問服務器集群中的所述兩個或更多個讀訪問服務器與所述Zookeeper保持長連接。可選地,當客戶端發出讀請求時,根據預置規則將所述讀請求轉發給所述兩個或更多個讀訪問服務器中的一個,當該讀訪問服務器與所述Zookeeper的長連接存在時,該讀訪問服務器基于所述讀請求查找信息并返回查詢內容;當該讀訪問服務器與所述Zookeeper的長連接不存在時,將所述讀請求轉發給所述兩個或更多個讀訪問服務器中的其他讀訪問服務器。可選地,所述系統進一步包括負載均衡器,當客戶端發出讀請求時,所述負載均衡器將所述讀請求分配給所述兩個或更多個讀訪問服務器中的一個,當該讀訪問服務器與所述Zookeeper的長連接存在時,該讀訪問服務器基于所述讀請求查找信息并返回查詢內容;當該讀訪問服務器與所述Zookeeper的長連接不存在時,所述負載均衡器將所述讀請求重新分配給所述兩個或更多個讀訪問服務器中的一個讀訪問服務器。可選地,當Zookeeper發生內容添加或更新時,Zookeeper將所添加或更新的內容發布給所述兩個或更多個讀訪問服務器。可選地,當讀訪問服務器與Zookeeper服務集群之間的長連接斷接時,該讀訪問服務器重新與所述Zookeeper服務集群建立長連接,并從所述Zookeeper服務集群下載全部內容或斷接期間的更新內容 。根據另一個方面,提出一種使Zook^per的讀性能支持水平擴展的方法,包括:客戶端發出讀請求;將所述讀請求轉發給兩個或更多個讀訪問服務器中的一個;確定該讀訪問服務器與Zookeeper的長連接是否存在;當所述長連接存在時,該讀訪問服務器基于所述讀請求查找信息,并且將查詢內容返回給所述客戶端;以及當所述長連接不存在時,將所述讀請求轉發給所述兩個或更多個讀訪問服務器中的其他讀訪問服務器。可選地,將所述讀請求轉發給兩個或更多個讀訪問服務器中的一個是通過負載均衡器來完成的。可選地,當Zookeeper服務集群發生內容添加或更新時,所述Zookeeper服務集群將所添加或更新的內容發布給所述兩個或更多個讀訪問服務器。可選地,當讀訪問服務器與Zookeeper服務集群之間的長連接斷接時,該讀訪問服務器重新與所述Zookeeper服務集群建立長連接,并從所述Zookeeper服務集群下載全部內容或斷接期間的更新內容。附圖說明通過下面結合附圖進行的描述,本專利技術一些示范性實施例的上述和其他方面、特征和優點對于本領域技術人員來說將變得顯而易見,其中:圖1是根據本專利技術的使Zookeeper的讀性能支持水平擴展的系統的框圖;圖2是根據本專利技術的使Zookeeper的讀性能支持水平擴展的方法的一個實現方式的流程圖,其示出了無負載均衡器的情況;圖3是根據本專利技術的使Zookeeper的讀性能支持水平擴展的方法的另一個實現方式的流程圖,其示出了有負載均衡器的情況;圖4示出了對Zookeeper服務集群添加或更新內容時的過程的流程 圖5示出了恢復讀訪問服務器與Zooke印er服務集群之間的長連接的一個實現方式的處理流程,其示出了無負載均衡器的情況;以及圖6示出了恢復讀訪問服務器與Zookeeper服務集群之間的長連接的一個實現方式的處理流程,其示出了有負載均衡器的情況。具體實施例方式提供參考附圖的下面描述以幫助全面理解本專利技術的示范性實施例。其包括各種細節以助于理解,而應當將它們認為僅僅是示范性的。因此,本領域普通技術人員應當認識至IJ,可以對這里描述的實施例做出各種改變和修改,而不會背離本專利技術的范圍和精神。同樣,為了清楚和簡明,省略了對公知功能和結構的描述。下面將參考附圖詳細描述本專利技術。圖1是根據本專利技術的使Zook^per的讀性能支持水平擴展的系統的框圖。如圖1中所不,該系統包括讀訪問服務器集群110和Zookeeper服務集群120。讀訪問服務器集群110也可稱作前置服務器集群,其包括兩個或更多個讀訪問服務器或前置服務器,在圖中作為示例圖示了三個讀訪問服務器110-1、110-2、110-3。讀訪問服務器集群110用于完成客戶端對Zookeeper的讀數據請求的響應。也就是說,當客戶端發出對Zookeeper的讀數據請求時,客戶端不訪問Zookeeper,而是訪問讀訪問服務器集群。優選地,讀訪問服務器集群為了完成客戶端對Zookeeper的讀數據請求的響應,其與Zookeeper服務集群保持長連接。具體地,當客戶端發出讀請求時,根據預置規則(例如可以在客戶端保存所有讀訪問服務器的列表,采用隨機訪問或者順序訪問的方式訪問讀服務器;或者可以通過域名和負載均衡服務器,將請求轉發給讀訪問服務器)將所述讀請求轉發給讀訪問服務器集群中的一個讀訪問服務器。該讀訪問服務器確定其與Zookeeper的長連接是否存在。當該讀訪問服務器與所述Zookeeper的長連接不存在時,該讀訪問服務器基于所述讀請求查找信息并返回查詢內容給客戶端。另一方面,當該讀訪問服務器與Zookeeper的長連接不存在時,將所述讀請求轉發給其他讀訪問服務器直到沒有可用的讀訪問服務器為止,以由其他讀訪問服務器返回查詢內容。替選地,當客戶端發出讀請求時,由負載均衡器將所述讀請求轉發給讀訪問服務器集群中的一個讀訪問服務器。該讀訪問服務器確定其與Zookeeper的長連接是否存在。當該讀訪問服務器與所述Zookeeper的長連接不存在時,該讀訪問服務器基于所述讀請求查找信息并返回查詢內容給客戶端。如果該讀訪問服務器與Zookeeper的長連接不存在,則負載均衡器重新將所述讀請求分配給讀訪問服務器直到達到預設的最大重復次數為止。 例如,讀訪問服務器可以包括讀數據接口來接收來自客戶端的讀請求。Zookeeper服務集群120用于通過Watcher機制將修改內容推送到所述讀訪問服務器集群中的所述兩個或更多個讀訪問服務器。具體地,當一個客戶端向Zookeeper服務集群發出添加或更新請求時,Zookeeper服務集群基于添加或更新請求來添加或更新內容。在Zookeeper服務集群添加或更新內容之后,Zookeeper服務集群將所添加或更新的內容發布給所述兩個或更多個讀訪問服務器。而且,每當讀訪問服務器與Zookeeper服務集群之間的長連接斷接時,讀訪問服務器處于不能提供服務狀態。于是,該讀訪問服務器嘗試與所述Zookeeper服務集本文檔來自技高網...
【技術保護點】
一種使Zookeeper的讀性能支持水平擴展的系統,包括:包括兩個或更多個讀訪問服務器的讀訪問服務器集群,用于完成客戶端對Zookeeper的讀數據請求的響應;以及Zookeeper服務集群,用于通過Watcher機制將修改內容推送到所述讀訪問服務器集群中的所述兩個或更多個讀訪問服務器。
【技術特征摘要】
1.一種使Zookeeper的讀性能支持水平擴展的系統,包括: 包括兩個或更多個讀訪問服務器的讀訪問服務器集群,用于完成客戶端對Zookeeper的讀數據請求的響應;以及 Zookeeper服務集群,用于通過Watcher機制將修改內容推送到所述讀訪問服務器集群中的所述兩個或更多個讀訪問服務器。2.根據權利要求1所述的系統,其中,所述讀訪問服務器集群中的所述兩個或更多個讀訪問服務器與所述Zookeeper保持長連接。3.根據權利要求1所述的系統,其中,當客戶端發出讀請求時,根據預置規則將所述讀請求轉發給所述兩個或更多個讀訪問服務器中的一個, 當該讀訪問服務器與所述Zookeeper的長連接存在時,該讀訪問服務器基于所述讀請求查找信息并返回查詢內容; 當該讀訪問服務器與所述Zookeeper的長連接不存在時,將所述讀請求轉發給所述兩個或更多個讀訪問服務器中的其他讀訪問服務器。4.根據權利要求1所述的系統,其中,所述系統進一步包括負載均衡器, 當客戶端發出讀請求時,所述負載均衡器將所述讀請求分配給所述兩個或更多個讀訪問服務器中的一個, 當該讀訪問服務器與所述Zookeeper的長連接存在時,該讀訪問服務器基于所述讀請求查找信息并返回查詢內容; 當該讀訪問服務器與所述Zookeeper的長連接不存在時,所述負載均衡器將所述讀請求重新分配給所述兩個或更 多個讀訪問服務器中的一個讀訪問服務器。5.根據權利要求1所述的系統,其中,...
【專利技術屬性】
技術研發人員:張永成,
申請(專利權)人:北京京東世紀貿易有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。