欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

MySQL數(shù)據(jù)庫(kù)的集群系統(tǒng)的制作方法

文檔序號(hào):11261952閱讀:208來源:國(guó)知局
本發(fā)明涉及mysql數(shù)據(jù)庫(kù),特別是涉及一種mysql數(shù)據(jù)庫(kù)的集群系統(tǒng)。
背景技術(shù)
::mysql數(shù)據(jù)庫(kù)以其穩(wěn)定和友好方便的使用等優(yōu)點(diǎn)得到了廣泛應(yīng)用,隨著大數(shù)據(jù)技術(shù)的盛行,數(shù)據(jù)的海量存儲(chǔ)要求越來越高,也就對(duì)mysql數(shù)據(jù)庫(kù)所需存儲(chǔ)的數(shù)據(jù)越來隨大,但是單個(gè)mysql數(shù)據(jù)庫(kù)無法存儲(chǔ)所有數(shù)據(jù)。急需一種mysql集群解決方案,因此,需要將mysql數(shù)據(jù)庫(kù)進(jìn)行集群化:一方面能使用mysql數(shù)據(jù)庫(kù)自身的功能特性;一方面能自動(dòng)分庫(kù)分表,同時(shí)保證集群的可用性。在當(dāng)前的解決方案中,針對(duì)mysql數(shù)據(jù)庫(kù)進(jìn)行的讀出多寫入少,主要提供在線分析,每個(gè)用戶id產(chǎn)生的數(shù)據(jù)相互獨(dú)立,對(duì)于一個(gè)用戶來說,又需要從不同緯度對(duì)該用戶進(jìn)行描述。所以針對(duì)一個(gè)用戶來說,可以建一個(gè)獨(dú)立的數(shù)據(jù)庫(kù),對(duì)于該用戶不同緯度的描述可以建不同的多個(gè)表,各個(gè)表之間相互獨(dú)立。但是用戶個(gè)數(shù)會(huì)增加,單臺(tái)mysql數(shù)據(jù)庫(kù)的數(shù)據(jù)存儲(chǔ)成為了瓶頸,需要一個(gè)mysql數(shù)據(jù)庫(kù)集群方案提供數(shù)據(jù)擴(kuò)展能力,同時(shí)保證mysql數(shù)據(jù)庫(kù)服務(wù)的可用性以及數(shù)據(jù)查詢的快速響應(yīng)能力。在目前的一些mysql數(shù)據(jù)庫(kù)的集群實(shí)現(xiàn)方法中,利用根據(jù)表中的一個(gè)或多個(gè)字段進(jìn)行分庫(kù)分表操作,并且在mysql前端有一個(gè)中介(proxy)負(fù)責(zé)sql語句的解析以及將sql語句的執(zhí)行分發(fā)。關(guān)于根據(jù)表中的字段分庫(kù)分表操作一般包括range、hash和一致性hash等方式,這些方式分別有其自身缺陷:range方式:簡(jiǎn)而言之,當(dāng)字段值位于某個(gè)范圍時(shí)就被分配至指定機(jī)器上;當(dāng)數(shù)據(jù)發(fā)生傾斜時(shí),負(fù)載不夠均衡,當(dāng)新增mysql節(jié)點(diǎn) 時(shí),需要重新指定分配方案。hash方式:也會(huì)造成數(shù)據(jù)傾斜,同時(shí)當(dāng)新增mysql節(jié)點(diǎn)時(shí),所有mysql節(jié)點(diǎn)的數(shù)據(jù)都會(huì)發(fā)生遷移。一致性hash方式:新增mysql節(jié)點(diǎn)時(shí),少量mysql節(jié)點(diǎn)的數(shù)據(jù)會(huì)發(fā)生遷移。上述分配原則存在幾個(gè)問題:1、只解決了數(shù)據(jù)的垂直切分,不支持同一個(gè)數(shù)據(jù)庫(kù)內(nèi)表的分配;2、在分配時(shí)未考慮到當(dāng)前集群的情況,比如硬盤使用情況、內(nèi)存使用等,比如某一個(gè)用戶的數(shù)據(jù)量比較大,磁盤占用多,或者該用戶的數(shù)據(jù)為熱數(shù)據(jù),導(dǎo)致該機(jī)器的負(fù)載比較高,在這樣的情形下,其他用戶的數(shù)據(jù)可以拆分到其他負(fù)載低得集群上。同時(shí),存在某些業(yè)務(wù)場(chǎng)景,即,每個(gè)用戶或項(xiàng)目的數(shù)據(jù)完全獨(dú)立,在mysql數(shù)據(jù)庫(kù)中就是一個(gè)獨(dú)立數(shù)據(jù)庫(kù),該獨(dú)立數(shù)據(jù)庫(kù)的數(shù)據(jù)在單獨(dú)的數(shù)據(jù)文件下,不同的獨(dú)立數(shù)據(jù)庫(kù)的查詢相互不影響。但是用戶和項(xiàng)目是不斷增加的,即獨(dú)立數(shù)據(jù)庫(kù)不斷增加。上述業(yè)務(wù)場(chǎng)景對(duì)于mysql數(shù)據(jù)庫(kù)來說存儲(chǔ)是其一大瓶頸,需要一段時(shí)間后遷移數(shù)據(jù)庫(kù),可擴(kuò)展性不強(qiáng)。mysql數(shù)據(jù)庫(kù)的集群實(shí)現(xiàn)方法的切分(shard)方式以及新增節(jié)點(diǎn)的平衡重建對(duì)于上述業(yè)務(wù)場(chǎng)景來說粒度較粗,同時(shí)不同項(xiàng)目之間的數(shù)據(jù)查詢性能會(huì)受影響。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的目的在于,控制的粒度是細(xì)到一個(gè)用戶或者一個(gè)項(xiàng)目,可以控制其在mysql數(shù)據(jù)庫(kù)中存儲(chǔ)為單獨(dú)的數(shù)據(jù)庫(kù),當(dāng)平衡重建時(shí),可以遷移一個(gè)數(shù)據(jù)庫(kù),或者一個(gè)數(shù)據(jù)庫(kù)中的若干表。有鑒于此,根據(jù)本發(fā)明的第一方面,本發(fā)明提供一種mysql數(shù)據(jù)庫(kù)的集群系統(tǒng),包括多個(gè)服務(wù)器,其中每個(gè)服務(wù)器都包括mysql數(shù)據(jù)庫(kù)、代理模塊和mysql守護(hù)進(jìn)程模塊,其中,所述mysql數(shù)據(jù)庫(kù),用于存儲(chǔ)用戶數(shù)據(jù);所述代理模塊,用于實(shí)際處理用戶請(qǐng)求,維護(hù)與集群系統(tǒng)中其他服務(wù)器上mysql數(shù)據(jù)庫(kù)的連接;所述mysql守護(hù)進(jìn)程模塊,用于負(fù)責(zé)監(jiān)聽mysql數(shù)據(jù)庫(kù)的狀況。優(yōu)選地,所述系統(tǒng)還包括監(jiān)聽維護(hù)模塊,用于存儲(chǔ)元數(shù)據(jù)。在本發(fā)明的一些實(shí)施方式中,所述監(jiān)聽維護(hù)模塊包括執(zhí)行監(jiān)聽維護(hù)后臺(tái)單元,用于對(duì)所述mysql數(shù)據(jù)庫(kù)的節(jié)點(diǎn)的狀態(tài)進(jìn)行維護(hù)。在本發(fā)明的又一些實(shí)施方式中,所述監(jiān)聽維護(hù)模塊包括指令單元,用于執(zhí)行mysql數(shù)據(jù)庫(kù)的平衡重建和歷史項(xiàng)目數(shù)據(jù)下線的指令。優(yōu)選地,所述代理模塊通過所述監(jiān)聽維護(hù)模塊解析用戶sql數(shù)據(jù)庫(kù)和mysql數(shù)據(jù)庫(kù)的對(duì)應(yīng)關(guān)系。優(yōu)選地,所述代理模塊能夠更新所述監(jiān)聽維護(hù)模塊的存儲(chǔ)信息。優(yōu)選地,所述mysql守護(hù)進(jìn)程模塊能夠監(jiān)聽所述監(jiān)聽維護(hù)模塊的心跳。優(yōu)選地,所述mysql守護(hù)進(jìn)程模塊在啟動(dòng)時(shí)向所述監(jiān)聽維護(hù)模塊匯報(bào)當(dāng)前mysql數(shù)據(jù)庫(kù)的狀態(tài)信息和表的信息。在本發(fā)明的一些實(shí)施方式中,所述系統(tǒng)還包括用戶響應(yīng)模塊,用于均衡各個(gè)服務(wù)器的代理模塊的負(fù)載。在本發(fā)明的又一些實(shí)施方式中,所述代理模塊直接訪問用戶sql數(shù)據(jù)庫(kù)。根據(jù)本發(fā)明的第二方面,本發(fā)明提供一種mysql數(shù)據(jù)庫(kù)的集群的實(shí)現(xiàn)方法,包括:設(shè)置監(jiān)聽維護(hù)模塊,并在每個(gè)服務(wù)器設(shè)置mysql數(shù)據(jù)庫(kù)、代理模塊和mysql守護(hù)進(jìn)程模塊;所述代理模塊響應(yīng)用戶請(qǐng)求,同時(shí)保留與集群系統(tǒng)中其他服務(wù)器上mysql數(shù)據(jù)庫(kù)的連接池,創(chuàng)建表并存儲(chǔ)在所述監(jiān)聽維護(hù)模塊中;和所述mysql守護(hù)進(jìn)程模塊監(jiān)聽mysql數(shù)據(jù)庫(kù)的狀況和所述監(jiān)聽維護(hù)模塊的心跳,并將信息匯報(bào)給所述監(jiān)聽維護(hù)模塊。優(yōu)選地,所述mysql守護(hù)進(jìn)程模塊匯報(bào)的信息包括磁盤的占用狀況和/或服務(wù)器的負(fù)載狀況。在本發(fā)明的一些實(shí)施方式中,所述方法還包括利用用戶響應(yīng)模塊接收用戶請(qǐng)求,根據(jù)監(jiān)聽維護(hù)模塊存儲(chǔ)的信息實(shí)現(xiàn)負(fù)載均衡,轉(zhuǎn)發(fā)請(qǐng)求并返回結(jié)果。優(yōu)選地,所述代理模塊利用已有的nosql緩存存儲(chǔ)查詢結(jié)果。更優(yōu)選地,所述代理模塊利用redis作為緩存存儲(chǔ)查詢的結(jié)果。在本發(fā)明的另一些實(shí)施方式中,所述監(jiān)聽維護(hù)模塊的指令單元對(duì)單個(gè)表設(shè)置主從服務(wù)器的讀寫比重。在本發(fā)明的又一些實(shí)施方式中,所述監(jiān)聽維護(hù)模塊利用watcher機(jī)制實(shí)現(xiàn)新節(jié)點(diǎn)的加入和/或利用session機(jī)制實(shí)現(xiàn)舊節(jié)點(diǎn)的下線。根據(jù)本發(fā)明的第三方面,本發(fā)明提供一種減少內(nèi)存占用的元數(shù)據(jù)存儲(chǔ)方法,其中用比特代替服務(wù)器的ip。在本發(fā)明的一些實(shí)施方式中,表的名稱用比特代替。優(yōu)選地,用戶id用int表示。附圖說明下面將通過參照附圖詳細(xì)描述本發(fā)明的優(yōu)選實(shí)施例,使本領(lǐng)域的普通技術(shù)人員更清楚本發(fā)明的所述及其它特征和優(yōu)點(diǎn),附圖中:圖1是根據(jù)本發(fā)明的具體實(shí)施例的mysql數(shù)據(jù)庫(kù)的集群系統(tǒng)的示意圖。具體實(shí)施方式在下文的描述中,給出了大量具體的細(xì)節(jié)以便提供對(duì)本發(fā)明更為徹底的理解。然而,對(duì)于本領(lǐng)域技術(shù)人員來說顯而易見的是,本發(fā)明可以無需一個(gè)或多個(gè)這些細(xì)節(jié)而得以實(shí)施。在其他的例子中,為了避免與本發(fā)明發(fā)生混淆,對(duì)于本領(lǐng)域公知的一些技術(shù)特征未進(jìn)行描述。在本發(fā)明中,術(shù)語“redis”是一種高性能的key-value存儲(chǔ)系統(tǒng),支持存儲(chǔ)的value類型很多,包括string(字符串)、list(鏈表)、set(集合)、zset(sortedset--有序集合)和hash(哈希類型)。這些數(shù)據(jù)類型都支持push/pop、add/remove及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎(chǔ)上,redis支持各種不同方式的排序。術(shù)語“mysql”是一種關(guān)聯(lián)數(shù)據(jù)庫(kù)管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫(kù)將數(shù)據(jù)保存在不同的表中。術(shù)語“nosql”(notonlysql)指非關(guān)系型的數(shù)據(jù)庫(kù),包括但不限于鍵值(key-value)存儲(chǔ)數(shù)據(jù)庫(kù)、列存儲(chǔ)數(shù)據(jù)庫(kù)、文檔型數(shù)據(jù)庫(kù)、圖形(graph)數(shù)據(jù)庫(kù)。術(shù)語“心跳”(heartbeat)是linux-ha工程的一個(gè)組成部分,具有可靠消息通信機(jī)制。最核心的包括兩個(gè)部分,心跳監(jiān)測(cè)部分和資源接管部分,心跳監(jiān)測(cè)可以通過網(wǎng)絡(luò)鏈路和串口進(jìn)行,而且支持冗余鏈路,它們之間相互發(fā)送報(bào)文來告訴對(duì)方自己當(dāng)前的狀態(tài),如果在指定的時(shí)間內(nèi)未收到對(duì)方發(fā)送的報(bào)文,那么就認(rèn)為對(duì)方失效,這時(shí)需啟動(dòng)資源接管模塊來接管運(yùn)行在對(duì)方主機(jī)上的資源或者服務(wù)。術(shù)語“監(jiān)聽維護(hù)”(zookeeper)是一個(gè)分布式的,開放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),提供的功能包括:配置維護(hù)、名字服務(wù)、分布式同步、組服務(wù)等。使用zookeeper可以保證總服務(wù)器自動(dòng)感知有多少提供搜索引擎的服務(wù)器并向這些服務(wù)器發(fā)出搜索請(qǐng)求,當(dāng)總服務(wù)器宕機(jī)時(shí)自動(dòng)啟用備用的總服務(wù)器。術(shù)語“元數(shù)據(jù)”(metadata)是描述數(shù)據(jù)的數(shù)據(jù),對(duì)數(shù)據(jù)及信息資源的描述性信息,主要是描述數(shù)據(jù)屬性(property)的信息,用來支持如指示存儲(chǔ)位置、歷史數(shù)據(jù)、資源查找、文件記錄等功能。術(shù)語“int”是整型變量,在32位機(jī)上,int通常是32位(32比特);在16位機(jī)上,int通常是16位(16比特)。術(shù)語“watcher機(jī)制”是指當(dāng)znode(節(jié)點(diǎn))以某種方式發(fā)生變化時(shí),“觀察”(watch)機(jī)制可以讓客戶端得到通知??梢葬槍?duì)zookeeper服務(wù)的“操作”來設(shè)置觀察,該服務(wù)的其他操作可以觸發(fā)觀察。術(shù)語“session機(jī)制”是一種服務(wù)器端的機(jī)制,服務(wù)器使用一種散列表或類似于散列表的結(jié)構(gòu)來保存信息。session在計(jì)算機(jī)中,尤其是在網(wǎng)絡(luò)應(yīng)用中,稱為“會(huì)話”。它具體是指一個(gè)終端用戶與交互系統(tǒng)進(jìn)行通信的時(shí)間間隔,通常指從注冊(cè)進(jìn)入系統(tǒng)到注銷退出系統(tǒng)之間所經(jīng)過的時(shí)間。當(dāng)程序調(diào)用httpsession.invalidate();或距離上一次收到客戶端發(fā)送的sessionid時(shí)間間隔超過了session的超時(shí)設(shè)置;或服務(wù) 器進(jìn)程被停止時(shí),session被刪除。根據(jù)本發(fā)明的具體實(shí)施例的mysql數(shù)據(jù)庫(kù)的集群系統(tǒng)的分配策略是基于用戶id的順序分配同時(shí)考慮當(dāng)前mysql數(shù)據(jù)庫(kù)的集群的每臺(tái)服務(wù)器的負(fù)載情況以及磁盤使用來分配用戶數(shù)據(jù)。本發(fā)明的主要運(yùn)用場(chǎng)景是聯(lián)機(jī)分析處理(olap,onlineanalysisprocess),如圖1所示,根據(jù)本發(fā)明的具體實(shí)施例的mysql數(shù)據(jù)庫(kù)的集群系統(tǒng)包括:多個(gè)服務(wù)器101,其中各個(gè)服務(wù)器101分別包括mysql數(shù)據(jù)庫(kù)1011及其相應(yīng)的代理(broker)模塊1012和mysql守護(hù)進(jìn)程模塊1013,根據(jù)本發(fā)明的具體實(shí)施例的mysql數(shù)據(jù)庫(kù)的集群系統(tǒng)還包括用戶響應(yīng)(client)模塊102、監(jiān)聽維護(hù)(zookeeper)模塊103,元數(shù)據(jù)(metadata)指向監(jiān)聽維護(hù)模塊103。多個(gè)服務(wù)器,每個(gè)服務(wù)器都包括至少一個(gè)mysql數(shù)據(jù)庫(kù),而每個(gè)mysql數(shù)據(jù)庫(kù)都配有相應(yīng)的代理(broker)模塊和mysql守護(hù)進(jìn)程(mysqldaemon)模塊。代理(broker)模塊,用于處理用戶的請(qǐng)求,具體而言,代理(broker)模塊解析用戶sql和mysql實(shí)例的對(duì)應(yīng)關(guān)系并且返回查詢結(jié)果。該進(jìn)程會(huì)維護(hù)一個(gè)連接池,主要維護(hù)和集群中所有mysql的連接。根據(jù)本發(fā)明的mysql數(shù)據(jù)庫(kù)的集群系統(tǒng)的關(guān)鍵在于:由于每臺(tái)服務(wù)器上都部署代理(broker)模塊,而不是在mysql集群前端加一個(gè)中介(proxy)負(fù)責(zé)所有的請(qǐng)求(這種方式容易出現(xiàn)單點(diǎn)故障且不便擴(kuò)展),同時(shí)由于是代理(broker)模塊狀態(tài)無關(guān)的,所以根據(jù)本發(fā)明的mysql數(shù)據(jù)庫(kù)的集群系統(tǒng)方便擴(kuò)展。mysql守護(hù)進(jìn)程(mysqldaemon)模塊,用于負(fù)責(zé)監(jiān)聽mysql數(shù)據(jù)庫(kù)的狀況,同時(shí)定時(shí)報(bào)告其相應(yīng)服務(wù)器上的磁盤使用情況。如上所述,每個(gè)mysql數(shù)據(jù)庫(kù)都會(huì)運(yùn)行一個(gè)此類進(jìn)程。監(jiān)聽維護(hù)(zookeeper)模塊,用于存儲(chǔ)元數(shù)據(jù),元數(shù)據(jù)包括表(table)和節(jié)點(diǎn)(node)的映射、節(jié)點(diǎn)注冊(cè)和磁盤使用情況監(jiān)聽。同時(shí),監(jiān)聽維護(hù)模塊還包括執(zhí)行監(jiān)聽維護(hù)后臺(tái)(zookeeperdaemon)單元和指令(command)單元。因?yàn)楦鶕?jù)本發(fā)明的mysql數(shù)據(jù)庫(kù)的集群系統(tǒng)的分配策略是動(dòng) 態(tài)的,所以需要記錄每個(gè)用戶的每個(gè)表和具體服務(wù)器ip地址之間的對(duì)應(yīng)關(guān)系。這些元數(shù)據(jù)存儲(chǔ)在監(jiān)聽維護(hù)(zookeeper)模塊上,為了減少表和ip地址之間的對(duì)應(yīng)關(guān)系的內(nèi)存占用,在本發(fā)明的一些實(shí)施方式中,mysql數(shù)據(jù)庫(kù)的集群系統(tǒng)針對(duì)監(jiān)聽維護(hù)模塊進(jìn)行了一些優(yōu)化:例如有四臺(tái)服務(wù)器,其中一臺(tái)服務(wù)器的ip地址為192.168.8.155,字符串存儲(chǔ)需要占用13個(gè)字節(jié),可以使用一個(gè)比特0表示該服務(wù)器,那么四臺(tái)服務(wù)器就可以用兩個(gè)比特表示如00、01、10和11表示,同樣表的名稱也可以用該方法壓縮,如果每個(gè)數(shù)據(jù)庫(kù)具有100個(gè)表名,則需要一個(gè)字節(jié)表示,其中用戶id用int表示(4個(gè)字節(jié))。節(jié)點(diǎn)信息的存儲(chǔ)也通過zookeeper存儲(chǔ)。因?yàn)橐粋€(gè)字節(jié)等于8比特,通過這樣的轉(zhuǎn)換,可以極大節(jié)省內(nèi)存占用。另一方面,根據(jù)本發(fā)明的mysql數(shù)據(jù)庫(kù)的集群系統(tǒng)為了實(shí)現(xiàn)mysql數(shù)據(jù)庫(kù)的節(jié)點(diǎn)的動(dòng)態(tài)擴(kuò)展,需要一個(gè)服務(wù)發(fā)現(xiàn)機(jī)制:使mysql數(shù)據(jù)庫(kù)的集群得知有新的mysql數(shù)據(jù)庫(kù)的節(jié)點(diǎn)加入,方便將后來的數(shù)據(jù)分配到新的節(jié)點(diǎn)上;同時(shí)也要使mysql數(shù)據(jù)庫(kù)的集群得知有舊的mysql數(shù)據(jù)庫(kù)的節(jié)點(diǎn)下線,該舊的節(jié)點(diǎn)存儲(chǔ)的相應(yīng)數(shù)據(jù)不再提供服務(wù),去掉對(duì)應(yīng)的表和ip之間的對(duì)應(yīng)關(guān)系。其中,代理(broker)模塊通過監(jiān)聽維護(hù)模塊解析用戶sql數(shù)據(jù)庫(kù)和mysql數(shù)據(jù)庫(kù)的對(duì)應(yīng)關(guān)系。另一方面,在創(chuàng)建表(table)時(shí)或其他信息更新時(shí),代理(broker)模塊用于更新監(jiān)聽維護(hù)(zookeeper)模塊的存儲(chǔ)信息等。其中,mysql守護(hù)進(jìn)程模塊還用于監(jiān)聽所述監(jiān)聽維護(hù)模塊的心跳(heartbeat);同時(shí)mysql守護(hù)進(jìn)程模塊在啟動(dòng)時(shí)會(huì)向監(jiān)聽維護(hù)模塊匯報(bào)當(dāng)前mysql數(shù)據(jù)庫(kù)的狀態(tài)信息和表的信息。其中,監(jiān)聽維護(hù)后臺(tái)(zookeeperdaemon)單元執(zhí)行監(jiān)聽維護(hù)后臺(tái)進(jìn)程,具體而言監(jiān)聽維護(hù)后臺(tái)進(jìn)程對(duì)節(jié)點(diǎn)的狀態(tài)進(jìn)行維護(hù):當(dāng)某一個(gè)mysql服務(wù)器掛掉以后,需要對(duì)監(jiān)聽維護(hù)模塊存儲(chǔ)的一些元數(shù)據(jù)進(jìn)行更新,例如表和節(jié)點(diǎn)的映射關(guān)系。指令(command)單元104執(zhí)行指令進(jìn)程,具體而言是執(zhí)行mysql數(shù)據(jù)庫(kù)的平衡重建(rebalance)和一些歷史項(xiàng)目數(shù)據(jù)下線的 指令,包括監(jiān)聽維護(hù)模塊中該數(shù)據(jù)庫(kù)的狀態(tài)為只讀(read-only)、轉(zhuǎn)儲(chǔ)(dump)、刪除(delete)元數(shù)據(jù)等。用戶響應(yīng)模塊,用于均衡代理模塊的負(fù)載,具體而言,包括重新嘗試掛掉的代理模塊,用戶響應(yīng)模塊還用于請(qǐng)求過濾和服務(wù)發(fā)現(xiàn)。用戶也可以選擇直接訪問某一臺(tái)服務(wù)器的代理模塊的服務(wù),在這種情況下,用戶需要自己管理服務(wù)的可用性。通過代理模塊、用戶響應(yīng)模塊和監(jiān)聽維護(hù)模塊的配合,根據(jù)本發(fā)明的具體實(shí)施例的mysql數(shù)據(jù)庫(kù)的集群系統(tǒng):首先,代理模塊的作用在于一方面保留對(duì)每個(gè)數(shù)據(jù)庫(kù)的連接池,減少每次查詢建立連接所需的時(shí)間消耗,另一方面還可以和已有的nosql的緩存配合。在本發(fā)明的一些實(shí)施方式中,mysql數(shù)據(jù)庫(kù)的集群系統(tǒng)使用redis作為緩存,將查詢的結(jié)果緩存下來,下次查詢時(shí)直接返回結(jié)果,增加查詢效率;同時(shí),代理模塊的還需要監(jiān)聽維護(hù)模塊的注冊(cè)服務(wù),用于查詢請(qǐng)求的負(fù)載均衡;第三,用戶響應(yīng)模塊主要功能是接收應(yīng)用的請(qǐng)求然后根據(jù)監(jiān)聽維護(hù)模塊記錄的代理(broker)列表實(shí)現(xiàn)負(fù)載均衡,簡(jiǎn)單的轉(zhuǎn)發(fā)請(qǐng)求并返回結(jié)果?;诒景l(fā)明的系統(tǒng),負(fù)載均衡算法比較簡(jiǎn)單,順序發(fā)送請(qǐng)求到不同代理(broker)上。本領(lǐng)域普通技術(shù)人員可以理解上述方法中的全部或部分步驟可通過程序來指令相關(guān)硬件完成,所述程序可以存儲(chǔ)于計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如只讀存儲(chǔ)器、磁盤或光盤等??蛇x地,上述實(shí)施例的全部或部分步驟也可以使用一個(gè)或多個(gè)集成電路來實(shí)現(xiàn)。相應(yīng)地,上述實(shí)施例中的各模塊/單元可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能模塊的形式實(shí)現(xiàn)。本申請(qǐng)不限制于任何特定形式的硬件和軟件的結(jié)合。本發(fā)明已經(jīng)通過所述實(shí)施例進(jìn)行了說明,但應(yīng)當(dāng)理解的是,所述實(shí)施例只是用于舉例和說明的目的,而非意在將本發(fā)明限制于所描述的實(shí)施例范圍內(nèi)。此外本領(lǐng)域技術(shù)人員可以理解的是,本發(fā)明并不局限于所述實(shí)施例,根據(jù)本發(fā)明的教導(dǎo)還可以做出更多種的變型和修改,這些變型和修改均落在本發(fā)明所要求保護(hù)的范圍以內(nèi)。本發(fā)明的保護(hù)范圍由附屬的權(quán)利要求書及其等效范圍所界定。當(dāng)前第1頁(yè)12當(dāng)前第1頁(yè)12
當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
堆龙德庆县| 玉林市| 丰城市| 古交市| 商水县| 新干县| 淮滨县| 钟山县| 邻水| 石景山区| 宿州市| 佛学| 密山市| 新邵县| 长治县| 漯河市| 阆中市| 三河市| 乌拉特中旗| 攀枝花市| 陕西省| 巫溪县| 揭西县| 乐昌市| 中牟县| 丰原市| 威远县| 岗巴县| 武强县| 旺苍县| 安宁市| 银川市| 乐山市| 尚义县| 仲巴县| 红桥区| 天长市| 罗田县| 喜德县| 陆川县| 江都市|