資源配置與回收方法和資源配置與回收系統的制作方法
【專利摘要】本發明提出了一種資源配置與回收方法和一種資源配置與回收系統,其中,資源配置與回收方法包括:根據接收到的更新命令,更新服務端的配置信息;將獲取的更新后的配置信息同步更新到所有訪問服務端的客戶端;其中,服務端、客戶端和數據庫使用同一套底層代碼,以及客戶端的數據庫和緩存池通過Threadlocal技術進行連接的獲取、閉包回調和面向切面。通過本發明的技術方案,可以將服務端更新的配置信息自動同步更新到訪問該服務端的每個客戶端,使對系統的配置修改可以立即生效,而不必再對每個客戶端的相關配置信息逐個更新,從而可以便捷地進行資源配置和進行連接的自動回收,提升維護與整合系統的效率。
【專利說明】資源配置與回收方法和資源配置與回收系統
【技術領域】
[0001]本發明涉及終端【技術領域】,具體而言,涉及一種資源配置與回收方法和一種資源配置與回收系統。
【背景技術】
[0002]一般的信息系統都具有大量的配置文件,以及重復冗余的數據庫和重復冗余的緩存。比如,一般系統都分開發、測試、生產等幾個環境,不同的環境對應不同的配置文件,而一般系統都會有幾個子系統,每個子系統都有自己的數據庫和緩存的實現方式,而且,各個子系統的數據庫和緩存的實現方式基本都不相同,這就造成對各系統的維護和整合變得十分麻煩。
[0003]因此需要一種新的技術方案,可以便捷地進行資源配置和進行連接的回收,提升維護與整合系統的效率。
【發明內容】
[0004]本發明正是基于上述問題,提出了一種新的技術方案,可以便捷地進行資源配置和進行連接的回收,提升維護與整合系統的效率。
[0005]有鑒于此,本發明的一方面提出了一種資源配置與回收方法,包括:根據接收到的更新命令,更新服務端的配置信息;將獲取的更新后的所述配置信息同步更新到所有訪問所述服務端的客戶端;其中,所述服務端、所述客戶端和所述數據庫使用同一套底層代碼,以及所述客戶端的數據庫和緩存池通過Threadlocal技術進行連接的獲取、閉包回調和面向切面。
[0006]在該技術方案中,可以將服務端更新的配置信息自動同步更新到訪問該服務端的每個客戶端,使對系統的配置修改可以立即生效,而不必再對每個客戶端的相關配置信息逐個更新,從而可以便捷地進行資源配置,提升維護與整合系統的效率,實現了配置集中化管理。另外,服務端、客戶端和數據庫使用同一套底層代碼,可以使得在進行配置更改時十分方便,減小了出錯幾率。以及客戶端的數據庫和緩存池通過Threadlocal技術進行連接的獲取、閉包回調和面向切面,從而完成資源的自動回收,提升回收效率。
[0007]在上述技術方案中,優選地,在所述將更新后的所述配置信息同步更新到所有訪問所述服務端的客戶端之前,還包括:對所述服務端的所述配置信息進行監聽,以供檢測所述服務端的所述配置信息是否發生更新。
[0008]在該技術方案中,可以使用預設的監聽機制對服務端的配置信息進行實時監聽,以便及時檢測到更新的配置信息,從而便于進一步將更新后的配置信息同步到訪問本服務器的各個客戶端。
[0009]在上述技術方案中,優選地,所述配置信息包括數據庫配置地址和/或緩存配置地址。
[0010]在該技術方案中,配置信息為數據庫配置地址和/或緩存配置地址,當然,也可以是根據需要除此之外的其他配置信息。
[0011]在上述技術方案中,優選地,還包括:在將所述配置信息同步更新到所有訪問所述服務端的所述客戶端的同時,根據更新后的所述數據庫配置地址和/或所述緩存配置地址,為所述服務端確定新的數據庫和/或緩存池。
[0012]在該技術方案中,在為客戶端更新數據庫配置地址和/或緩存配置地址之后,可以根據更新后的數據庫配置地址和/或緩存配置地址進行尋址,以為該服務端配置與更新后的數據庫配置地址和/或緩存配置地址對應的數據庫和/或緩存池。
[0013]在上述技術方案中,優選地,還包括:在所述確定新的數據庫和/或緩存池之后,根據新的所述數據庫和/或新的所述緩存池自動釋放的連接,連接所述服務端與新的所述數據庫和/或新的所述緩存池。
[0014]在該技術方案中,數據庫和/或緩存池可以主動獲取和自動釋放連接,以便方便快捷地連接至目標服務端,從而大大提升了資源配置的效率。其中,所有的配置約束管理、所有數據庫、所有緩存池都使用同一套底層代碼,以減少代碼冗余,便于系統的維護和升級。
[0015]本發明的另一方面提出了一種資源配置與回收系統,包括:更新單元,根據接收到的更新命令,更新服務端的配置信息;同步更新單元,將獲取的更新后的所述配置信息同步更新到所有訪問所述服務端的客戶端;其中,所述服務端、所述客戶端和所述數據庫使用同一套底層代碼,以及所述客戶端的數據庫和緩存池通過Threadlocal技術進行連接的獲取、閉包回調和面向切面。
[0016]在該技術方案中,可以將服務端更新的配置信息自動同步更新到訪問該服務端的每個客戶端,使對系統的配置修改可以立即生效,而不必再對每個客戶端的相關配置信息逐個更新,從而可以便捷地進行資源配置,提升維護與整合系統的效率,實現了配置集中化管理。另外,服務端、客戶端和數據庫使用同一套底層代碼,可以使得在進行配置更改時十分方便,減小了出錯幾率。以及客戶端的數據庫和緩存池通過Threadlocal技術進行連接的獲取、閉包回調和面向切面,從而完成資源的自動回收,提升回收效率。
[0017]在上述技術方案中,優選地,還包括:監聽單元,在所述將更新后的所述配置信息同步更新到所有訪問所述服務端的客戶端之前,對所述服務端的所述配置信息進行監聽,以供檢測所述服務端的所述配置信息是否發生更新。
[0018]在該技術方案中,可以使用預設的監聽機制對服務端的配置信息進行實時監聽,以便及時檢測到更新的配置信息,從而便于進一步將更新后的配置信息同步到訪問本服務器的各個客戶端。
[0019]在上述技術方案中,優選地,所述配置信息包括數據庫配置地址和/或緩存配置地址。
[0020]在該技術方案中,配置信息為數據庫配置地址和/或緩存配置地址,當然,也可以是根據需要除此之外的其他配置信息。
[0021]在上述技術方案中,優選地,還包括:確定單元,在將所述配置信息同步更新到所有訪問所述服務端的所述客戶端的同時,根據更新后的所述數據庫配置地址和/或所述緩存配置地址,為所述服務端確定新的數據庫和/或緩存池。
[0022]在該技術方案中,在為客戶端更新數據庫配置地址和/或緩存配置地址之后,可以根據更新后的數據庫配置地址和/或緩存配置地址進行尋址,以為該服務端配置與更新后的數據庫配置地址和/或緩存配置地址對應的數據庫和/或緩存池。
[0023]在上述技術方案中,優選地,還包括:連接單元,在所述確定新的數據庫和/或緩存池之后,根據新的所述數據庫和/或新的所述緩存池自動釋放的連接,連接所述服務端與新的所述數據庫和/或新的所述緩存池。
[0024]在該技術方案中,數據庫和/或緩存池可以主動獲取和自動釋放連接,以便方便快捷地連接至目標服務端,從而大大提升了資源配置的效率。其中,所有的配置約束管理、所有數據庫、所有緩存池都使用同一套底層代碼,以減少代碼冗余,便于系統的維護和升級。
[0025]通過以上技術方案,可以將服務端更新的配置信息自動同步更新到訪問該服務端的每個客戶端,使對系統的配置修改可以立即生效,而不必再對每個客戶端的相關配置信息逐個更新,從而可以便捷地進行資源配置,提升維護與整合系統的效率,實現了配置集中化管理。另外,服務端、客戶端和數據庫使用同一套底層代碼,可以使得在進行配置更改時十分方便,減小了出錯幾率。以及客戶端的數據庫和緩存池通過Threadlocal技術進行連接的獲取、閉包回調和面向切面,從而完成資源的自動回收,提升回收效率。
【專利附圖】
【附圖說明】
[0026]圖1示出了根據本發明的一個實施例的資源配置與回收方法的流程圖;
[0027]圖2示出了根據本發明的一個實施例的資源配置與回收系統的框圖。
【具體實施方式】
[0028]為了能夠更清楚地理解本發明的上述目的、特征和優點,下面結合附圖和【具體實施方式】對本發明進行進一步的詳細描述。需要說明的是,在不沖突的情況下,本申請的實施例及實施例中的特征可以相互組合。
[0029]在下面的描述中闡述了很多具體細節以便于充分理解本發明,但是,本發明還可以采用其他不同于在此描述的其他方式來實施,因此,本發明的保護范圍并不受下面公開的具體實施例的限制。
[0030]圖1示出了根據本發明的一個實施例的資源配置與回收方法的流程圖。
[0031]如圖1所示,根據本發明的一個實施例的資源配置與回收方法,包括:
[0032]步驟102,根據接收到的更新命令,更新服務端的配置信息。
[0033]步驟104,將獲取的更新后的所述配置信息同步更新到所有訪問所述服務端的客戶端;其中,所述服務端、所述客戶端和所述數據庫使用同一套底層代碼,以及所述客戶端的數據庫和緩存池通過Threadlocal技術進行連接的獲取、閉包回調和面向切面。
[0034]在該技術方案中,可以將服務端更新的配置信息自動同步更新到訪問該服務端的每個客戶端,使對系統的配置修改可以立即生效,而不必再對每個客戶端的相關配置信息逐個更新,從而可以便捷地進行資源配置,提升維護與整合系統的效率,實現了配置集中化管理。另外,服務端、客戶端和數據庫使用同一套底層代碼,可以使得在進行配置更改時十分方便,減小了出錯幾率。以及客戶端的數據庫和緩存池通過Threadlocal技術進行連接的獲取、閉包回調和面向切面,從而完成資源的自動回收,提升回收效率。
[0035]在上述技術方案中,優選地,在步驟104之前,還包括:對所述服務端的所述配置信息進行監聽,以供檢測所述服務端的所述配置信息是否發生更新。
[0036]在該技術方案中,可以使用預設的監聽機制對服務端的配置信息進行實時監聽,以便及時檢測到更新的配置信息,從而便于進一步將更新后的配置信息同步到訪問本服務器的各個客戶端。
[0037]在上述技術方案中,優選地,所述配置信息包括數據庫配置地址和/或緩存配置地址。
[0038]在該技術方案中,配置信息為數據庫配置地址和/或緩存配置地址,當然,也可以是根據需要除此之外的其他配置信息。
[0039]在上述技術方案中,優選地,還包括:在將所述配置信息同步更新到所有訪問所述服務端的所述客戶端的同時,根據更新后的所述數據庫配置地址和/或所述緩存配置地址,為所述服務端確定新的數據庫和/或緩存池。
[0040]在該技術方案中,在為客戶端更新數據庫配置地址和/或緩存配置地址之后,可以根據更新后的數據庫配置地址和/或緩存配置地址進行尋址,以為該服務端配置與更新后的數據庫配置地址和/或緩存配置地址對應的數據庫和/或緩存池。
[0041]在上述技術方案中,優選地,還包括:在所述確定新的數據庫和/或緩存池之后,根據新的所述數據庫和/或新的所述緩存池自動釋放的連接,連接所述服務端與新的所述數據庫和/或新的所述緩存池。
[0042]在該技術方案中,數據庫和/或緩存池可以主動獲取和自動釋放連接,以便方便快捷地連接至目標服務端,從而大大提升了資源配置的效率。其中,所有的配置約束管理、所有數據庫、所有緩存池都使用同一套底層代碼,以減少代碼冗余,便于系統的維護和升級。
[0043]圖2示出了根據本發明的一個實施例的資源配置與回收系統的框圖。
[0044]如圖2所示,根據本發明的一個實施例的資源配置與回收系統200,包括:更新單元202,根據接收到的更新命令,更新服務端的配置信息;同步更新單元204,將獲取的更新后的所述配置信息同步更新到所有訪問所述服務端的客戶端;其中,所述服務端、所述客戶端和所述數據庫使用同一套底層代碼,以及所述客戶端的數據庫和緩存池通過Threadlocal技術進行連接的獲取、閉包回調和面向切面。
[0045]在該技術方案中,可以將服務端更新的配置信息自動同步更新到訪問該服務端的每個客戶端,使對系統的配置修改可以立即生效,而不必再對每個客戶端的相關配置信息逐個更新,從而可以便捷地進行資源配置,提升維護與整合系統的效率,實現了配置集中化管理。另外,服務端、客戶端和數據庫使用同一套底層代碼,可以使得在進行配置更改時十分方便,減小了出錯幾率。以及客戶端的數據庫和緩存池通過Threadlocal技術進行連接的獲取、閉包回調和面向切面,從而完成資源的自動回收,提升回收效率。
[0046]在上述技術方案中,優選地,還包括:監聽單元206,在所述將更新后的所述配置信息同步更新到所有訪問所述服務端的客戶端之前,對所述服務端的所述配置信息進行監聽,以供檢測所述服務端的所述配置信息是否發生更新。
[0047]在該技術方案中,可以使用預設的監聽機制對服務端的配置信息進行實時監聽,以便及時檢測到更新的配置信息,從而便于進一步將更新后的配置信息同步到訪問本服務器的各個客戶端。
[0048]在上述技術方案中,優選地,所述配置信息包括數據庫配置地址和/或緩存配置地址。
[0049]在該技術方案中,配置信息為數據庫配置地址和/或緩存配置地址,當然,也可以是根據需要除此之外的其他配置信息。
[0050]在上述技術方案中,優選地,還包括:確定單元208,在將所述配置信息同步更新到所有訪問所述服務端的所述客戶端的同時,根據更新后的所述數據庫配置地址和/或所述緩存配置地址,為所述服務端確定新的數據庫和/或緩存池。
[0051 ] 在該技術方案中,在為客戶端更新數據庫配置地址和/或緩存配置地址之后,可以根據更新后的數據庫配置地址和/或緩存配置地址進行尋址,以為該服務端配置與更新后的數據庫配置地址和/或緩存配置地址對應的數據庫和/或緩存池。
[0052]在上述技術方案中,優選地,還包括:連接單元210,在所述確定新的數據庫和/或緩存池之后,根據新的所述數據庫和/或新的所述緩存池自動釋放的連接,連接所述服務端與新的所述數據庫和/或新的所述緩存池。
[0053]在該技術方案中,數據庫和/或緩存池可以主動獲取和自動釋放連接,以便方便快捷地連接至目標服務端,從而大大提升了資源配置的效率。其中,所有的配置約束管理、所有數據庫、所有緩存池都使用同一套底層代碼,以減少代碼冗余,便于系統的維護和升級。
[0054]本發明的技術方案是基于Zookeeper技術來實現配置管理,并基于Zookeeper的watch (監聽)機制保證系統能及時地變更當前配置,同時還涉及了 Commons pool (數據庫連接池)技術,更是基于繼承和封裝完成JDBC(Java Data Base Connectvity,Java數據庫連接)層面連接的自動獲取和關閉。在本發明的技術方案中,使用了本封裝常用增刪改查方法和Jedis pool技術,并基于Threadlocal (多線程程序)實現來連接的獲取、閉包回調或者PO面向切面完成資源的自動回收,以及還可以在通過基于Zookeeper的watch機制獲取最新的配置信息后,初始化對應的數據庫或者緩存池。
[0055]通過上述技術方案,可以取得以下技術效果:
[0056](I)配置修改不需要啟動應用即可生效;
[0057](2)數據庫以連接池提供服務,并提供獲取和自動釋放連接的方法;
[0058](3)數據庫操作提供公共的增刪改查方法以供其他應用調用;
[0059](4)緩存以池的方式提供服務,并提供獲取和自動釋放連接的方法;
[0060](5)數據庫、緩存配置地址修改后,應用可以更換對應的數據庫和緩存服務。
[0061]另外,在該技術方案中,所有的配置約束管理、所有數據庫、所有緩存池都使用同一套底層代碼,以減少代碼冗余,便于系統的維護和升級。本發明已經成功應用于搜狐plus、搜狐白社會、搜狐passport、搜狐博客、暢捷通工作圈等應用。
[0062]以上結合附圖詳細說明了本發明的技術方案,通過本發明的技術方案,可以將服務端更新的配置信息自動同步更新到訪問該服務端的每個客戶端,使對系統的配置修改可以立即生效,而不必再對每個客戶端的相關配置信息逐個更新,從而可以便捷地進行資源配置,提升維護與整合系統的效率,實現了配置集中化管理。另外,服務端、客戶端和數據庫使用同一套底層代碼,可以使得在進行配置更改時十分方便,減小了出錯幾率。以及客戶端的數據庫和緩存池通過Threadlocal技術進行連接的獲取、閉包回調和面向切面,從而完成資源的自動回收,提升回收效率。
[0063]以上所述僅為本發明的優選實施例而已,并不用于限制本發明,對于本領域的技術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。
【權利要求】
1.一種資源配置與回收方法,其特征在于,包括: 根據接收到的更新命令,更新服務端的配置信息; 將獲取的更新后的所述配置信息同步更新到所有訪問所述服務端的客戶端; 其中,所述服務端、所述客戶端和所述數據庫使用同一套底層代碼,以及所述客戶端的數據庫和緩存池通過Threadlocal技術進行連接的獲取、閉包回調和面向切面。
2.根據權利要求1所述的資源配置與回收方法,其特征在于,在所述將更新后的所述配置信息同步更新到所有訪問所述服務端的客戶端之前,還包括: 對所述服務端的所述配置信息進行監聽,以供檢測所述服務端的所述配置信息是否發生更新。
3.根據權利要求1或2所述的資源配置與回收方法,其特征在于,所述配置信息包括數據庫配置地址和/或緩存配置地址。
4.根據權利要求3所述的資源配置與回收方法,其特征在于,還包括: 在將所述配置信息同步更新到所有訪問所述服務端的所述客戶端的同時,根據更新后的所述數據庫配置地址和/或所述緩存配置地址,為所述服務端確定新的數據庫和/或緩存池。
5.根據權利要求4所述的資源配置與回收方法,其特征在于,還包括: 在所述確定新的數據庫和/或緩存池之后,根據新的所述數據庫和/或新的所述緩存池自動釋放的連接,連接所述服務端與新的所述數據庫和/或新的所述緩存池。
6.一種資源配置與回收系統,其特征在于,包括: 更新單元,根據接收到的更新命令,更新服務端的配置信息; 同步更新單元,將獲取的更新后的所述配置信息同步更新到所有訪問所述服務端的客戶端; 其中,所述服務端、所述客戶端和所述數據庫使用同一套底層代碼,以及所述客戶端的數據庫和緩存池通過Threadlocal技術進行連接的獲取、閉包回調和面向切面。
7.根據權利要求6所述的資源配置與回收系統,其特征在于,還包括: 監聽單元,在所述將更新后的所述配置信息同步更新到所有訪問所述服務端的客戶端之前,對所述服務端的所述配置信息進行監聽,以供檢測所述服務端的所述配置信息是否發生更新。
8.根據權利要求6或7所述的資源配置與回收系統,其特征在于,所述配置信息包括數據庫配置地址和/或緩存配置地址。
9.根據權利要求8所述的資源配置與回收系統,其特征在于,還包括: 確定單元,在將所述配置信息同步更新到所有訪問所述服務端的所述客戶端的同時,根據更新后的所述數據庫配置地址和/或所述緩存配置地址,為所述服務端確定新的數據庫和/或緩存池。
10.根據權利要求9所述的資源配置與回收系統,其特征在于,還包括: 連接單元,在所述確定新的數據庫和/或緩存池之后,根據新的所述數據庫和/或新的所述緩存池自動釋放的連接,連接所述服務端與新的所述數據庫和/或新的所述緩存池。
【文檔編號】H04L29/08GK104486393SQ201410746490
【公開日】2015年4月1日 申請日期:2014年12月8日 優先權日:2014年12月8日
【發明者】郝學武 申請人:暢捷通信息技術股份有限公司