本發(fā)明涉及計算機負載均衡技術領域,尤其涉及一種智能dns調度系統(tǒng),還涉及一種基于所述智能dns調度系統(tǒng)的調度方法。
背景技術:
internet的快速發(fā)展是全球實現互聯網的關鍵,而ip地址則是全球互聯網的粘合劑。由于因特網為其中每一個節(jié)點都分配了唯一的ip地址,通過ip地址我們可以訪問到所有因特網內的主機。但ip不方便記憶,而在internet的通信過程中只能識別ip地址,所以需要一種方便記憶又能夠在internet的通信過程中被識別技術,基于這個需求dns(域名系統(tǒng))出現了。
在過去的幾年中,隨著互聯網的快速發(fā)展和企業(yè)應用web化,服務器負載均衡(slb)技術已經不再陌生。服務器負載均衡根據用戶數據請求中的信息將其智能轉發(fā)到后端少則數臺多則成百上千臺應用服務器,并且確保根據事先定義的策略選擇最佳的服務器進行轉發(fā),從而一定程度上解決了應用的可用性、擴展性等問題。但是,隨著用戶對應用可用性和擴展性需求的進一步增加,越來越多的用戶不滿足于在單一數據中心提供服務,開始考慮容災、用戶就近訪問等問題。這正是負載均衡設備中的全局服務器負載均衡(gslb)技術所要解決的問題。盡管gslb技術早在數年前就是大部分負載均衡設備提供的必備功能,但由于用戶需求較小、功能不夠完善、性能不足、價格高昂等因素,目前部署gslb的用戶在負載均衡整個用戶群中所占比例還是很小。
目前大部分使用負載均衡技術應用都是采用基于dns的gslb技術。在用戶發(fā)出任何應用連接請求時,首先必須通過dns請求獲得服務器的ip地址,基于dns的gslb正是在返回dns解析結果的過程中進行智能決策,給用戶返回一個最佳的服務ip。用戶應用流程與沒有gslb時未發(fā)生任何變化。
然而dns并不是為gslb而設計,gslb基于dns的地址判斷,力度較粗;dns請求里面不會帶有內容信息,gslb只能擁有ip信息,無法針對內容作出更加靈活的判斷。
技術實現要素:
為解決現有技術中的問題,本發(fā)明提供一種智能dns調度系統(tǒng),還提供一種基于所述智能dns調度系統(tǒng)的調度方法。
本發(fā)明智能dns調度系統(tǒng),包括dns服務器、gslb服務器、slb服務器、數據庫、數據收集中心和資源服務器,其中,
所述數據收集中心用于收集各服務器上報的信息,并將調度策略和服務器上報的信息更新到數據庫;
所述gslb服務器用于從數據庫讀取調度策略并保存至本地,并將ip對應的域名更新到dns服務器上;
所述slb服務器用于從數據庫中獲取關聯服務器的的相關信息和資源服務器的資源信息并緩存至本地;
客戶端通過slb服務器獲取資源信息的地址,并通過地址在資源服務器中獲取相關資源。
本發(fā)明作進一步改進,所述客戶端通過訪問dns服務器獲得gslb服務器地址,然后使用gslb服務器地址從調度策略中找到合適的slb服務器地址,獲取slb服務器地址后,客戶端通過訪問slb服務器獲取資源獲取的地址,并使用該地址在資源服務器中獲取對應的資源。
本發(fā)明作進一步改進,服務器上報的信息包括健康狀態(tài)、連接數、帶寬使用率,響應時間、slb服務器與服務器的關聯、地理位置與服務器的關聯,slb服務器定時從數據庫中獲取關聯服務器的的相關信息,所述相關信息包括關聯服務器的帶寬、內存、cpu使用率、延時信息,其中,slb服務器根據客戶端的請求,將信息最快最優(yōu)的一臺服務器的地址給客戶端。
本發(fā)明作進一步改進,slb服務器定時的將訪問slb服務器的host地址更新到數據庫。
本發(fā)明作進一步改進,所述數據收集中心提供配置調度策略的接口,并將調度策略通過數據收集中心更新到數據庫中。
本發(fā)明還提供一種基于所述智能dns調度系統(tǒng)的調度方法,包括如下步驟:
s1:dns服務器、gslb服務器、slb服務器和資源服務器上報各自的服務器信息至數據收集中心,數據收集中心收到服務器信息后,更新到數據庫的相應位置;
s2:通過數據收集中心配置調度策略,并將其存儲在數據庫中;
s3:gslb服務器從數據庫讀取調度策略并保存至本地,并將ip對應的域名更新到dns服務器上,slb服務器用于從數據庫中獲取關聯服務器的的相關信息和資源服務器的資源信息并緩存至本地;
s4:客戶端通過slb服務器獲取資源信息的地址,并通過地址在資源服務器中獲取相關資源。
本發(fā)明作進一步改進,在步驟s4中,所述客戶端訪問資源的處理方法為:
s41:客戶端訪問dns服務器獲得gslb服務器地址;
s42:使用gslb服務器地址從調度策略中找到合適的slb服務器地址;
s43:獲取slb服務器地址后,客戶端通過訪問slb服務器獲取資源獲取的地址,并使用該地址在資源服務器中獲取對應的資源。
本發(fā)明作進一步改進,在步驟s41中,客戶端首先通過域名訪問dns服務器,dns服務器通過查詢找到gslb服務器的ip,并將地址返回給客戶端緩存起來;如果緩存地址失效,客戶端會重新訪問dns服務器找到gslb服務器的ip地址。
本發(fā)明作進一步改進,在步驟s42中,使用得到的gslb服務器的ip地址訪問gslb服務器,glsb服務器根據訪問客戶端的ip,通過查找geoip庫找到客戶端的地理位置信息,并根據地理位置信息與gslb服務器本地存儲的調度策略對比,找到對應的slb服務器的地址返回給客戶端,并將slb服務器的地址緩存起來;如果的slb服務器緩存地址失效,客戶端重新請求gslb服務器獲得新的slb服務器的ip地址。
本發(fā)明作進一步改進,在步驟s43中,客戶端采用得到的slb服務器的ip地址訪問slb服務器,slb服務器根據訪問客戶端需要獲取的資源相關信息,從slb服務器本地內存中找到資源獲取的相關信息,并組裝成資源訪問的鏈接返回給客戶端,客戶端打開鏈接,從而拿到客戶所需要的資源。
與現有技術相比,本發(fā)明的有益效果是:dns請求里面帶有內容信息、gslb服務器能夠針對內容信息作出更加靈活的判斷,可以使客戶到指定的服務器集群中較快的獲取客戶想要獲得的資源,同時可以使運營商動態(tài)的配置調度策略,應用更加靈活,滿足各種需求。
附圖說明
圖1為本發(fā)明系統(tǒng)結構示意圖;
圖2為各服務器和數據收集中心數據同步方法流程圖;
圖3為客戶端請求資源方法流程圖;。
圖4為客戶端獲取slb服務器地址方法流程圖;
圖5為客戶端獲得資源地址方法流程圖。
具體實施方式
下面結合附圖和實施例對本發(fā)明做進一步詳細說明。
如圖1所示,本發(fā)明智能dns調度系統(tǒng),包括dns服務器、gslb服務器、slb服務器、數據庫、數據收集中心和資源服務器,其中,所述數據收集中心用于收集各服務器上報的信息,并將調度策略和服務器上報的信息更新到數據庫;所述gslb服務器用于從數據庫讀取調度策略并保存至本地,并將ip對應的域名更新到dns服務器上;所述slb服務器用于從數據庫中獲取關聯服務器的的相關信息和資源服務器的資源信息并緩存至本地。
優(yōu)選地,本例的數據收集中心提供配置調度策略的接口,并將調度策略通過數據收集中心更新到數據庫中。本例設置web配置界面與接口相連,通過web配置界面配置調度策略(如:根據客戶的地區(qū),廠商,客戶編號等策略進行分組,也可將多個策略混合一起進行優(yōu)先級排序進行策略分組)。
各個服務器資源實時同步,客戶端在本系統(tǒng)中請求資源時,首先通過slb服務器獲取資源信息的地址,并通過地址在資源服務器中獲取相關資源。
具體地,所述客戶端首先通過訪問dns服務器獲得gslb服務器地址,然后使用gslb服務器地址從調度策略中找到合適的slb服務器地址,獲取slb服務器地址后,客戶端通過訪問slb服務器獲取資源獲取的地址,并使用該地址在資源服務器中獲取對應的資源。
本發(fā)明針對現有的基于dns服務器的gslb技術中dns請求里面不會帶有內容信息、gslb服務器只能擁有ip信息、無法針對內容作出更加靈活的判斷,使基于dns的gslb技術可針對內容作出更靈活的判斷。
本發(fā)明的實現方法為:
每個服務器的軟件或設備之間通過發(fā)送http請求上報數據收集中心,收集各個服務器的信息,比如:健康狀態(tài)、連接數、帶寬使用率,響應時間,slb服務器與服務器的關聯,地理位置與服務器的關聯等;客戶端向dns服務器發(fā)解析請求;dns服務器通過域名查詢到gslb服務器對應的服務器ip返回給客戶端并緩存在客戶端本地;客戶端通過得到的gslb服務器的ip訪問gslb服務器,gslb服務器根據客戶端ip查詢geoip庫,獲得客戶端當前所在地理位置信息,并根據查詢數據庫信息,找到最佳的slb服務器地址返回給客戶端并緩存在客戶端本地;客戶端使用拿到的slb服務器地址,訪問slb服務器請求需要獲取的數據,slb服務器查詢數據庫篩選出與slb服務器有關聯的服務器的帶寬、負載、延時、內存使用率、cpu使用率等信息選擇能夠將信息最快最優(yōu)的一臺服務器的訪問鏈接給客戶端;客戶端拿資源訪問鏈接后到因特網上去找到對應的服務器獲取資源。通過這種方法,可以使客戶到指定的服務器集群中較快的獲取客戶想要獲得的資源,同時可以使運營商動態(tài)的配置調度策略。
如圖2所示,作為本發(fā)明的一個實施例,本例的系統(tǒng)各模塊數據同步的實現方法為:
1、資源服務器信息和資源信息收集軟件通過http協議定時的上報給數據收集中心,數據收集中心將接收到的數據實時更新到數據庫中相應的位置;
2、gslb服務器將其ip及對應的域名更新到dns服務器上;
3、slb服務器定時的將訪問slb服務器的host(主)地址更新到數據庫;
4、數據收集中心提供接口,通過web界面配置調度策略,并更新到數據庫中;
5、slb服務器定時的從數據庫中獲取調度策略相關的數據,緩存到本地;
6、slb服務器定時的從數據庫中獲取關聯服務器的帶寬、內存、cpu使用率、延時等信息,以及獲取資源的相關信息緩存到本地。
上述步驟實時或定時采集并存儲,完成各個模塊的數據同步。上述數據或內容同步完成后,可以供客戶端通過智能dns服務器的調度獲取需要的資源。
如圖3所示,本例的客戶端獲取資源的方法包括如下步驟:
1、客戶端訪問dns服務器獲得gslb服務器地址;
2、將gslb服務器地址緩存在本地;
3、使用gslb服務器地址從調度策略中找到合適的slb服務器地址;
4、將slb服務器地址緩存在本地;
5、獲取slb服務器地址后,客戶端通過訪問slb服務器獲取資源的鏈接;
6、客戶端訪問鏈接并獲取資源。
如圖4所示,在步驟1中,客戶端首先通過域名訪問dns服務器,dns服務器通過查詢找到gslb服務器的ip,并將地址返回給客戶端緩存起來;如果緩存地址失效,客戶端會重新訪問dns服務器找到gslb服務器的ip地址。
如圖5所示,在步驟3中,使用得到的gslb服務器的ip地址訪問gslb服務器,glsb服務器根據訪問客戶端的ip,通過查找geoip庫找到客戶端的地理位置信息,并根據地理位置信息與gslb服務器本地存儲的調度策略對比,找到對應的slb服務器的地址返回給客戶端,并將slb服務器的地址緩存起來;如果的slb服務器緩存地址失效,客戶端重新請求gslb服務器獲得新的slb服務器的ip地址。
在步驟5中,客戶端采用得到的slb服務器的ip地址訪問slb服務器,slb服務器根據訪問客戶端需要獲取的資源相關信息,從slb服務器本地內存中找到資源獲取的相關信息,并組裝成資源訪問的鏈接返回給客戶端,客戶端打開鏈接,從而拿到客戶所需要的資源。
以上所述之具體實施方式為本發(fā)明的較佳實施方式,并非以此限定本發(fā)明的具體實施范圍,本發(fā)明的范圍包括并不限于本具體實施方式,凡依照本發(fā)明所作的等效變化均在本發(fā)明的保護范圍內。