一種基于nio實現分布式的關系數據庫共享型連接池的制作方法
【專利摘要】本發明公開了一種基于NIO實現分布式的關系數據庫共享型連接池,其包括有業務應用層、數據訪問代理層和存儲層,其中:所述業務應用層通過數據訪問代理提供的通信協議jar包,采用嵌入jar包侵入性模式,屏蔽業務應用層與數據訪問代理層的復雜協議,簡化業務應用層的通信過程;所述數據訪問代理層用于提供整個數據訪問代理層的核心服務功能;所述存儲層作為數據持久化區的Oracle數據庫,通過JDBC驅動程序對接Oracle數據庫。本發明能減少Oracle服務器的總連接數、節省應用創建的總連接數并且支持多種類型目標數據庫。
【專利說明】
一種基于N1實現分布式的關系數據庫共享型連接池
技術領域
[0001]本發明涉及連接池,尤其涉及一種基于N1實現分布式的關系數據庫共享型連接池。
【背景技術】
[0002]由于電信系統的交易的數據量非常龐大、應用服務多,單個Oracle數據庫能支持的數據庫鏈接數受限于機器性能和Oracle服務,難以承受大量的應用服務連接。并且數據按照業務及地市劃分了多個不同數據庫節點,應用需要創建多個數據源連接不同的數據庫節點,造成數據庫鏈接浪費嚴重,已達到數據庫節點最大鏈接數瓶頸。所以為了提高數據庫鏈接利用率,提高數據庫性能,需要一種復用數據庫鏈接技術以達到減少應用創建數據庫連接池數量及復用不同數據庫節點鏈接。
【發明內容】
[0003]本發明要解決的技術問題在于,針對現有技術的不足,提供一種能減少Oracle服務器的總連接數、節省應用創建的總連接數、支持多種類型目標數據庫的基于N1實現分布式的關系數據庫共享型連接池。
[0004]為解決上述技術問題,本發明采用如下技術方案。
[0005]—種基于N1實現分布式的關系數據庫共享型連接池,其包括有業務應用層、數據訪問代理層和存儲層,其中:所述業務應用層通過數據訪問代理提供的通信協議jar包,采用嵌入jar包侵入性模式,屏蔽業務應用層與數據訪問代理層的復雜協議,簡化業務應用層的通信過程;所述數據訪問代理層用于提供整個數據訪問代理層的核心服務功能;所述存儲層作為數據持久化區的Oracle數據庫,通過JDBC驅動程序對接Oracle數據庫。
[0006]優選地,所述數據訪問代理層包括有路由選擇過程,其通過數據庫用戶名指向相應的數據庫連接池。
[0007]優選地,所述數據訪問代理層包括有SQL語句透傳過程,即不對應用傳入的SQL做更改,在用戶名指向的Oracle中執行,把執行結果返回應用端。
[0008]優選地,所述數據訪問代理層支持多Oracle庫,同時代理多個Oracle數據庫,所有訪問數據庫的連接池統一由數據訪問代理層管理。
[0009]本發明相比現有技術而言的有益效果在于,首先,本發明讓多個應用系統相同的數據庫用戶共用連接池,以達到節省連接減少Oracle服務器的總連接數;其次,本發明實現了應用一個連接池復用鏈接多個數據庫節點,以達到節省應用創建的總連接數;此外,本發明屏蔽了各種數據庫協議的差別,支持后端存儲到多種類型的目標數據庫,包括MySQL、DB2、0racle 等。
【附圖說明】
[0010]圖1為本發明的組成框圖。
【具體實施方式】
[0011]下面結合附圖和實施例對本發明作更加詳細的描述。
[0012]本發明公開了一種基于N1實現分布式的關系數據庫共享型連接池,如圖1所示,其包括有業務應用層1、數據訪問代理層2和存儲層3,其中:所述業務應用層I通過數據訪問代理提供的通信協議jar包,采用嵌入jar包侵入性模式,屏蔽業務應用層I與數據訪問代理層2的復雜協議,簡化業務應用層I的通信過程;所述數據訪問代理層2用于提供整個數據訪問代理層的核心服務功能;所述存儲層3作為數據持久化區的Oracle數據庫,通過JDBC驅動程序對接Orac Ie數據庫。
[0013]本發明公開的基于N1實現分布式的關系數據庫共享型連接池,其提供一個Oracle訪問代理層統一管理所有用戶名的連接池,使之能讓多個應用系統相同的數據庫用戶共用連接池,以達到節省連接減少Oracle服務器的總連接數。并且屏蔽了各種數據庫協議的差別,支持后端存儲到多種類型的目標數據庫,包括MySQL、DB2、0racle等。本發明還配備了配置中心和監控中心,從而實現配置簡單方便、監控數據庫鏈接狀態等功能。
[0014]進一步地,所述數據訪問代理層2包括有路由選擇過程,其通過數據庫用戶名指向相應的數據庫連接池。
[0015]本實施例中,所述數據訪問代理層2包括有SQL語句透傳過程,即不對應用傳入的SQL做更改,在用戶名指向的Oracle中執行,把執行結果返回應用端。
[0016]作為一種優選方式,所述數據訪問代理層2支持多Oracle庫,同時代理多個Oracle數據庫,所有訪問數據庫的連接池統一由數據訪問代理層2管理。
[0017]本發明相比現有技術而言的有益效果在于,首先,本發明讓多個應用系統相同的數據庫用戶共用連接池,以達到節省連接減少Oracle服務器的總連接數;其次,本發明實現了應用一個連接池復用鏈接多個數據庫節點,以達到節省應用創建的總連接數;此外,本發明屏蔽了各種數據庫協議的差別,支持后端存儲到多種類型的目標數據庫,包括MySQL、DB2、0racle 等。
[0018]以上所述只是本發明較佳的實施例,并不用于限制本發明,凡在本發明的技術范圍內所做的修改、等同替換或者改進等,均應包含在本發明所保護的范圍內。
【主權項】
1.一種基于N1實現分布式的關系數據庫共享型連接池,其特征在于,包括有業務應用層、數據訪問代理層和存儲層,其中: 所述業務應用層通過數據訪問代理提供的通信協議jar包,采用嵌入jar包侵入性模式,屏蔽業務應用層與數據訪問代理層的復雜協議,簡化業務應用層的通信過程; 所述數據訪問代理層用于提供整個數據訪問代理層的核心服務功能; 所述存儲層作為數據持久化區的Oracle數據庫,通過JDBC驅動程序對接Oracle數據庫。2.如權利要求1所述的基于N1實現分布式的關系數據庫共享型連接池,其特征在于,所述數據訪問代理層包括有路由選擇過程,其通過數據庫用戶名指向相應的數據庫連接池。3.如權利要求1所述的基于N1實現分布式的關系數據庫共享型連接池,其特征在于,所述數據訪問代理層包括有SQL語句透傳過程,即不對應用傳入的SQL做更改,在用戶名指向的Oracle中執行,把執行結果返回應用端。4.如權利要求1所述的基于N1實現分布式的關系數據庫共享型連接池,其特征在于,所述數據訪問代理層支持多Oracle庫,同時代理多個Oracle數據庫,所有訪問數據庫的連接池統一由數據訪問代理層管理。
【文檔編號】G06F17/30GK105824866SQ201510929544
【公開日】2016年8月3日
【申請日】2015年12月14日
【發明人】楊創, 鐘堅, 廖小文, 曹建平
【申請人】廣東億迅科技有限公司