示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本發(fā)明相一致的所有實施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。
[0074]圖1A是根據(jù)一示例性實施例示出的存儲業(yè)務(wù)數(shù)據(jù)的方法的流程圖,圖1B是根據(jù)一示例性實施例示出的存儲業(yè)務(wù)數(shù)據(jù)的方法的場景圖,圖1C是根據(jù)一示例性實施例示出的數(shù)據(jù)庫節(jié)點的擴容場景圖之一,圖1D是根據(jù)一示例性實施例示出的數(shù)據(jù)庫節(jié)點的擴容場景圖之二,圖1E是根據(jù)一示例性實施例示出的數(shù)據(jù)庫節(jié)點的擴容場景圖之三;該存儲業(yè)務(wù)數(shù)據(jù)的方法可以應(yīng)用在數(shù)據(jù)庫集群中的數(shù)據(jù)庫節(jié)點上,如圖1A所示,該存儲業(yè)務(wù)數(shù)據(jù)的方法包括以下步驟S101-S103:
[0075]在步驟SlOl中,檢測是否需要對數(shù)據(jù)庫節(jié)點所在的數(shù)據(jù)庫集群進行擴容,如果檢測到需要對數(shù)據(jù)庫集群進行擴容,執(zhí)行步驟S102,如果檢測到不需要對數(shù)據(jù)庫集群進行擴容,執(zhí)行步驟S104。
[0076]在一實施例中,可以通過數(shù)據(jù)庫節(jié)點當(dāng)前已存儲的業(yè)務(wù)數(shù)據(jù)的存儲空間是否大于第一預(yù)設(shè)閾值來確定是否需要對數(shù)據(jù)庫集群進行擴容;在另一實施例中,可以通過數(shù)據(jù)庫節(jié)點當(dāng)前已存儲的業(yè)務(wù)數(shù)據(jù)的存儲空間與數(shù)據(jù)庫節(jié)點的總存儲空間來確定是否需要對數(shù)據(jù)庫集群進行擴容。
[0077]在步驟S102中,如果檢測到需要對數(shù)據(jù)庫集群進行擴容,確定數(shù)據(jù)庫集群需要擴容的數(shù)據(jù)庫節(jié)點的數(shù)量。
[0078]在一實施例中,數(shù)據(jù)庫節(jié)點可以向服務(wù)器客戶端獲取需要擴容的數(shù)據(jù)庫的節(jié)點的數(shù)量,例如,數(shù)據(jù)庫節(jié)點可以向數(shù)據(jù)庫集群對應(yīng)的服務(wù)器客戶端發(fā)送對數(shù)據(jù)庫集群進行擴容的提醒,服務(wù)器客戶端根據(jù)提醒向數(shù)據(jù)庫節(jié)點返回數(shù)據(jù)庫集群需要擴容的數(shù)據(jù)庫節(jié)點的數(shù)量。
[0079]在步驟S103中,根據(jù)需要擴容的數(shù)據(jù)庫節(jié)點的數(shù)量、數(shù)據(jù)庫節(jié)點的第一編號與需要存儲的業(yè)務(wù)數(shù)據(jù)的第二編號確定是否需要存儲業(yè)務(wù)數(shù)據(jù)。
[0080]在一實施例中,根據(jù)需要擴容的數(shù)據(jù)庫節(jié)點的數(shù)量確定數(shù)據(jù)庫集群中的擴容后的數(shù)據(jù)庫節(jié)點的總數(shù)量,確定需要存儲的業(yè)務(wù)數(shù)據(jù)的第二編號相對于總數(shù)量的余數(shù),根據(jù)余數(shù)和第一編號確定是否需要存儲業(yè)務(wù)數(shù)據(jù)。在一實施例中,余數(shù)可以通過對總數(shù)量取第二編號的模數(shù)得到。在一實施例中,業(yè)務(wù)數(shù)據(jù)可以為用戶在網(wǎng)站服務(wù)器上的記錄信息,例如,對于新用戶的注冊信息,業(yè)務(wù)數(shù)據(jù)為新用戶的用戶表的記錄數(shù)據(jù),或者,用戶針對一篇文章做了評論,業(yè)務(wù)數(shù)據(jù)為評論表中的評論記錄,等等。
[0081]在步驟S104中,如果檢測到不需要對數(shù)據(jù)庫集群進行擴容,根據(jù)數(shù)據(jù)庫節(jié)點的第一編號與需要存儲的業(yè)務(wù)數(shù)據(jù)的第二編號確定是否需要存儲業(yè)務(wù)數(shù)據(jù)。
[0082]下面結(jié)合圖1B至圖1E對本公開進行示例性說明,如圖1B所示,在整個網(wǎng)站架構(gòu)中的應(yīng)用層11上,包括web服務(wù)器節(jié)點111和web服務(wù)器節(jié)點113,在web服務(wù)器節(jié)點111和web服務(wù)器節(jié)點113上分別設(shè)置有服務(wù)器客戶端112和服務(wù)器客戶端114。在數(shù)據(jù)層12,數(shù)據(jù)庫節(jié)點121和數(shù)據(jù)庫節(jié)點122為擴容前的數(shù)據(jù)庫節(jié)點,數(shù)據(jù)庫節(jié)點123和數(shù)據(jù)庫節(jié)點124為擴容后的數(shù)據(jù)庫節(jié)點。
[0083]如圖1C所示,在對數(shù)據(jù)庫集群擴容前,有兩個數(shù)據(jù)庫節(jié)點,S卩,數(shù)據(jù)庫節(jié)點121和數(shù)據(jù)庫節(jié)點122,對于網(wǎng)站服務(wù)器新增的業(yè)務(wù)數(shù)據(jù),可以根據(jù)業(yè)務(wù)數(shù)據(jù)的第二編號(id)按照對2的取模結(jié)果分別存儲在數(shù)據(jù)庫節(jié)點121和數(shù)據(jù)庫節(jié)點122中。
[0084]當(dāng)網(wǎng)站服務(wù)器的業(yè)務(wù)數(shù)據(jù)的數(shù)量上升時,數(shù)據(jù)庫節(jié)點121和數(shù)據(jù)庫節(jié)點122的數(shù)據(jù)訪問性能下降,如圖1D所示,可以通過復(fù)制數(shù)據(jù)庫節(jié)點121和數(shù)據(jù)庫節(jié)點122的數(shù)據(jù)庫,得到4個數(shù)據(jù)庫節(jié)點,其中,數(shù)據(jù)庫節(jié)點123和數(shù)據(jù)庫節(jié)點124分別為數(shù)據(jù)庫節(jié)點121和數(shù)據(jù)庫節(jié)點122的拷貝。此外,對于拷貝之后的數(shù)據(jù)庫節(jié)點中會有一些業(yè)務(wù)數(shù)據(jù)為冗余數(shù)據(jù),因此可以將冗余數(shù)據(jù)刪除,從而避免數(shù)據(jù)庫集群中所存儲的業(yè)務(wù)數(shù)據(jù)在多個數(shù)據(jù)庫節(jié)點上重復(fù)存儲。本領(lǐng)域技術(shù)人員可以理解的是,上述4個數(shù)據(jù)庫節(jié)點僅作為示例性說明,并不能形成對本公開的限制,當(dāng)數(shù)據(jù)庫集群在4個數(shù)據(jù)庫節(jié)點的情形下需要擴容時,仍可以通過拷貝數(shù)據(jù)庫集群中已有數(shù)據(jù)庫節(jié)點的方式實現(xiàn)數(shù)據(jù)庫集群的擴容,通過拷貝方式對數(shù)據(jù)庫集群進行擴容,能夠使擴容后的數(shù)據(jù)庫集群的存儲空間達到了線性擴容的數(shù)倍,因此可以避免對數(shù)據(jù)庫集群進行頻繁的擴容操作。
[0085]本實施例中,在檢測到需要對數(shù)據(jù)庫集群進行擴容時,根據(jù)需要擴容的數(shù)據(jù)庫節(jié)點的數(shù)量、數(shù)據(jù)庫節(jié)點的第一編號與需要存儲的業(yè)務(wù)數(shù)據(jù)的第二編號確定是否需要存儲業(yè)務(wù)數(shù)據(jù),從而可以避免新生的業(yè)務(wù)數(shù)據(jù)存儲到同一個數(shù)據(jù)庫節(jié)點,緩解數(shù)據(jù)庫節(jié)點由于存儲新生的業(yè)務(wù)數(shù)據(jù)引起的“熱點”問題,避免針對最新創(chuàng)建的數(shù)據(jù)庫節(jié)點設(shè)計緩存系統(tǒng),大大簡化了數(shù)據(jù)庫集群的復(fù)雜度,并且更有利于數(shù)據(jù)庫集群的后期維護。
[0086]在一實施例中,檢測是否需要對數(shù)據(jù)庫節(jié)點所在的數(shù)據(jù)庫集群進行擴容,可包括:
[0087]確定數(shù)據(jù)庫節(jié)點當(dāng)前已存儲的業(yè)務(wù)數(shù)據(jù)的存儲空間是否大于第一預(yù)設(shè)閾值;
[0088]如果當(dāng)前已存儲的業(yè)務(wù)數(shù)據(jù)的存儲空間大于第一預(yù)設(shè)閾值,確定需要對數(shù)據(jù)庫節(jié)點所在的數(shù)據(jù)庫集群進行擴容。
[0089]在一實施例中,檢測是否需要對數(shù)據(jù)庫節(jié)點所在的數(shù)據(jù)庫集群進行擴容,可包括:
[0090]確定數(shù)據(jù)庫節(jié)點當(dāng)前已存儲的業(yè)務(wù)數(shù)據(jù)的存儲空間與數(shù)據(jù)庫節(jié)點的總存儲空間;
[0091]如果當(dāng)前已存儲的業(yè)務(wù)數(shù)據(jù)的存儲空間與總存儲空間的比值大于第二預(yù)設(shè)閾值,確定需要對數(shù)據(jù)庫節(jié)點所在的數(shù)據(jù)庫集群進行擴容。
[0092]在一實施例中,確定數(shù)據(jù)庫集群需要擴容的數(shù)據(jù)庫節(jié)點的數(shù)量,可包括:
[0093]向數(shù)據(jù)庫集群對應(yīng)的服務(wù)器客戶端發(fā)送對數(shù)據(jù)庫集群進行擴容的提醒;
[0094]接收來自服務(wù)器客戶端根據(jù)提醒返回的數(shù)據(jù)庫集群需要擴容的數(shù)據(jù)庫節(jié)點的數(shù)量。
[0095]在一實施例中,根據(jù)需要擴容的數(shù)據(jù)庫節(jié)點的數(shù)量、數(shù)據(jù)庫節(jié)點的第一編號與需要存儲的業(yè)務(wù)數(shù)據(jù)的第二編號確定是否需要存儲業(yè)務(wù)數(shù)據(jù),可包括:
[0096]根據(jù)需要擴容的數(shù)據(jù)庫節(jié)點的數(shù)量確定數(shù)據(jù)庫集群中的擴容后的數(shù)據(jù)庫節(jié)點的總數(shù)量;
[0097]確定需要存儲的業(yè)務(wù)數(shù)據(jù)的第二編號相對于總數(shù)量的余數(shù);
[0098]根據(jù)余數(shù)和第一編號確定是否需要存儲業(yè)務(wù)數(shù)據(jù)。
[0099]在一實施例中,方法還可包括:
[0100]在對數(shù)據(jù)庫集群擴容后,確定數(shù)據(jù)庫節(jié)點中已存儲的冗余數(shù)據(jù);
[0101]將冗余數(shù)據(jù)刪除。
[0102]在一實施例中,確定數(shù)據(jù)庫節(jié)點中已存儲的冗余數(shù)據(jù),可包括:
[0103]確定數(shù)據(jù)庫節(jié)點相對應(yīng)的拷貝的數(shù)據(jù)庫節(jié)點的第三編號;
[0104]確定已存儲的業(yè)務(wù)數(shù)據(jù)的第四編號相對于總數(shù)量的余數(shù);
[0105]將余數(shù)與拷貝的數(shù)據(jù)庫節(jié)點的第三編號相同的業(yè)務(wù)數(shù)據(jù)作為冗余數(shù)據(jù)。
[0106]具體如何在數(shù)據(jù)庫節(jié)點上存儲業(yè)務(wù)數(shù)據(jù)的,請參考后續(xù)實施例。
[0107]至此,本公開實施例提供的上述方法,可以避免新生的業(yè)務(wù)數(shù)據(jù)存儲到同一個數(shù)據(jù)庫節(jié)點,緩解數(shù)據(jù)庫節(jié)點由于存儲新生的業(yè)務(wù)數(shù)據(jù)引起的“熱點”問題,避免針對最新創(chuàng)建的數(shù)據(jù)庫節(jié)點設(shè)計緩存系統(tǒng),大大簡化了數(shù)據(jù)庫集群的復(fù)雜度,并且更有利于數(shù)據(jù)庫集群的后期維護。
[0108]下面以具體實施例來說明本公開實施例提供的技術(shù)方案。
[0109]圖2是根據(jù)一示例性實施例一示出的存儲業(yè)務(wù)數(shù)據(jù)的方法的流程圖;本實施例利用本公開實施例提供的上述方法,以數(shù)據(jù)庫節(jié)點當(dāng)前已存儲的業(yè)務(wù)數(shù)據(jù)的存儲空間是否大于第一預(yù)設(shè)閾值來確定為數(shù)據(jù)庫集群進行擴容以及如何確定擴容后的數(shù)據(jù)庫集群中的數(shù)據(jù)庫節(jié)點的數(shù)量為例進行示例性說明,本實施例結(jié)合圖1B至圖1E進行舉例說明,如圖2所示,包括如下步驟:
[0110]在步驟S201中,確定數(shù)據(jù)庫節(jié)點當(dāng)前已存儲的業(yè)務(wù)數(shù)據(jù)的存儲空間是否大于第一預(yù)設(shè)閾值,如果當(dāng)前已存儲的業(yè)務(wù)數(shù)據(jù)的存儲空間大于第一預(yù)設(shè)閾值,執(zhí)行步驟S202,如果當(dāng)前已存儲的業(yè)務(wù)數(shù)據(jù)的存儲空間小于或者等于第一預(yù)設(shè)閾值,執(zhí)行步驟S206。
[0111]在步驟S202中,如果當(dāng)前已存儲的業(yè)務(wù)數(shù)據(jù)的存儲空間大于第一預(yù)設(shè)閾值,確定需要對數(shù)據(jù)庫節(jié)點所在的數(shù)據(jù)庫集群進行擴容。
[0112]在步驟S201和步驟S202中,在一實施例中,數(shù)據(jù)庫節(jié)點可以通過其記錄的已經(jīng)存儲的業(yè)務(wù)數(shù)據(jù)所占的存儲空間是否大于第一預(yù)設(shè)閾值,如果已經(jīng)存儲的業(yè)務(wù)數(shù)據(jù)所占的存儲空間大于第一預(yù)設(shè)閾值,表示當(dāng)前數(shù)據(jù)庫節(jié)點由于存儲性能不能夠存儲更多的業(yè)務(wù)數(shù)據(jù),在此情形下,確定需要對數(shù)據(jù)庫節(jié)點所在的數(shù)據(jù)庫集群進行擴容。在一實施例中,第一預(yù)設(shè)閾值可以根據(jù)數(shù)據(jù)庫節(jié)點的具體存儲性能來確定,本公開對第一預(yù)設(shè)預(yù)知的大小不做限制,本領(lǐng)域技術(shù)人員可以理解的是,同一數(shù)據(jù)庫集群內(nèi)不同的數(shù)據(jù)庫節(jié)點對應(yīng)的第一預(yù)設(shè)閾值可以不相同,也可以相同,本公開對此不做限制。
[0113]在步驟S203中,向數(shù)據(jù)庫集群對應(yīng)的服務(wù)器客戶端發(fā)送對數(shù)據(jù)庫集群進行擴容的提醒。
[0114]在步驟S204中,接收來自服務(wù)器客戶端根據(jù)提醒返回的數(shù)據(jù)庫集群需要擴容的數(shù)據(jù)庫節(jié)點的數(shù)量。
[0115]在步驟S203和步驟S204中,在一實施例中,以數(shù)據(jù)庫節(jié)點121為例進行示例性說明,當(dāng)數(shù)據(jù)庫節(jié)點121根據(jù)其已存儲的業(yè)務(wù)數(shù)據(jù)所占的存儲空間大于第一預(yù)設(shè)閾值時,數(shù)據(jù)庫節(jié)點121可以向web服務(wù)器節(jié)點111的服務(wù)器客戶端112發(fā)送需要擴容的提醒,以告知服務(wù)器客戶端112其已不能存儲更多的業(yè)務(wù)數(shù)據(jù)。服務(wù)器客戶端112接收到提醒后,可以向相應(yīng)的網(wǎng)絡(luò)管理人員做出提示,在網(wǎng)絡(luò)管理人員通過手動方式將數(shù)據(jù)庫節(jié)點123和數(shù)據(jù)庫節(jié)點124擴容到數(shù)據(jù)庫集群中后,服務(wù)器客戶端112記錄已擴容的數(shù)據(jù)庫節(jié)點的數(shù)量,