本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種消息中間件的平滑擴(kuò)容方法及裝置。
背景技術(shù):
消息中間件是一種由消息傳輸機(jī)制或消息隊(duì)列模式組成的中間件技術(shù),利用高可靠的消息傳遞機(jī)制進(jìn)行平臺(tái)無(wú)關(guān)的數(shù)據(jù)交流,并基于數(shù)據(jù)通信來(lái)進(jìn)行分布式系統(tǒng)的集成。在分布式消息中間件體系中,集群的規(guī)模會(huì)隨著業(yè)務(wù)的增長(zhǎng)而不斷壯大,集群內(nèi)節(jié)點(diǎn)會(huì)頻繁出現(xiàn)某個(gè)節(jié)點(diǎn)上線和下線的情況,當(dāng)業(yè)務(wù)暴增時(shí),需要對(duì)消息中間件進(jìn)行擴(kuò)容,目前,系統(tǒng)的擴(kuò)容方式包括橫向擴(kuò)容方式,橫向擴(kuò)容方式主要是通過(guò)在消息中間件中增加節(jié)點(diǎn)的方式實(shí)現(xiàn)的。
然而,在采用橫向擴(kuò)容方式對(duì)消息中間件進(jìn)行擴(kuò)容時(shí),由于需要在發(fā)送端和接收端重新配置節(jié)點(diǎn)信息,導(dǎo)致無(wú)法實(shí)現(xiàn)消息中間件的擴(kuò)容對(duì)發(fā)送端及接收端的完全透明,發(fā)送端及接收端仍然能夠感知到消息中間件的擴(kuò)容。
上述內(nèi)容僅用于輔助理解本發(fā)明的技術(shù)方案,并不代表承認(rèn)上述內(nèi)容是現(xiàn)有技術(shù)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的主要目的在于提供一種消息中間件的平滑擴(kuò)容方法,旨在解決現(xiàn)有技術(shù)中無(wú)法實(shí)現(xiàn)消息中間件的擴(kuò)容對(duì)發(fā)送端及接收端的完全透明的技術(shù)問(wèn)題。
為實(shí)現(xiàn)上述目的,本發(fā)明提供的一種消息中間件的平滑擴(kuò)容方法,所述方法包括:
在需要對(duì)消息中間件進(jìn)行擴(kuò)容時(shí),控制服務(wù)器接收增加的第一節(jié)點(diǎn)發(fā)送的第一節(jié)點(diǎn)的名稱及所述第一節(jié)點(diǎn)所提供的業(yè)務(wù)的路由信息;
控制服務(wù)器將所述第一節(jié)點(diǎn)的名稱及所述第一節(jié)點(diǎn)所提供的業(yè)務(wù)的路由信息之間的映射關(guān)系保存至節(jié)點(diǎn)管理列表中;
控制服務(wù)器將所述節(jié)點(diǎn)管理列表發(fā)送給接收端及發(fā)送端。
優(yōu)選地,所述控制服務(wù)器接收增加的第一節(jié)點(diǎn)發(fā)送的第一節(jié)點(diǎn)名稱及業(yè)務(wù)路由信息之前還包括:
在增加的所述第一節(jié)點(diǎn)啟動(dòng)后,所述第一節(jié)點(diǎn)創(chuàng)建所述第一節(jié)點(diǎn)所提供的業(yè)務(wù);
將所述第一節(jié)點(diǎn)的名稱及所述第一節(jié)點(diǎn)所提供的業(yè)務(wù)的路由信息發(fā)送給所述控制服務(wù)器。
優(yōu)選地,所述方法還包括:
若接收到接收端或發(fā)送端定時(shí)發(fā)送的節(jié)點(diǎn)管理列表的獲取請(qǐng)求,則向所述接收端或發(fā)送端發(fā)送所述節(jié)點(diǎn)管理列表。
優(yōu)選地,所述方法還包括:
若接收到第二節(jié)點(diǎn)定時(shí)上報(bào)的第二節(jié)點(diǎn)的名稱及所述第二節(jié)點(diǎn)提供的業(yè)務(wù)的路由信息,則根據(jù)接收到的所述第二節(jié)點(diǎn)的名稱及所述第二節(jié)點(diǎn)提供的業(yè)務(wù)的路由信息更新所述節(jié)點(diǎn)管理列表。
為實(shí)現(xiàn)上述目的,本發(fā)明還提供一種消息中間件的平滑擴(kuò)容系統(tǒng),所述系統(tǒng)包括:控制服務(wù)器,所述控制服務(wù)器包括:
接收模塊,用于在需要對(duì)消息中間件進(jìn)行擴(kuò)容時(shí),接收增加的第一節(jié)點(diǎn)發(fā)送的第一節(jié)點(diǎn)的名稱及所述第一節(jié)點(diǎn)所提供的業(yè)務(wù)的路由信息;
保存模塊,用于將所述第一節(jié)點(diǎn)的名稱及所述第一節(jié)點(diǎn)所提供的業(yè)務(wù)的路由信息之間的映射關(guān)系保存至節(jié)點(diǎn)管理列表中;
發(fā)送模塊,用于將所述節(jié)點(diǎn)管理列表發(fā)送給接收端及發(fā)送端。
優(yōu)選地,所述系統(tǒng)還包括:增加的所述第一節(jié)點(diǎn),所述第一節(jié)點(diǎn)包括:
創(chuàng)建模塊,用于在增加的所述第一節(jié)點(diǎn)啟動(dòng)后,創(chuàng)建所述第一節(jié)點(diǎn)所提供的業(yè)務(wù);
信息發(fā)送模塊,用于將所述第一節(jié)點(diǎn)的名稱及所述第一節(jié)點(diǎn)所提供的業(yè)務(wù)的路由信息發(fā)送給所述控制服務(wù)器。
優(yōu)選地,所述控制服務(wù)器的所述發(fā)送模塊還用于:
若接收到接收端或發(fā)送端定時(shí)發(fā)送的節(jié)點(diǎn)管理列表的獲取請(qǐng)求,則向所述接收端或發(fā)送端發(fā)送所述節(jié)點(diǎn)管理列表。
優(yōu)選地,所述控制服務(wù)器還包括:
更新模塊,用于若接收到第二節(jié)點(diǎn)定時(shí)上報(bào)的第二節(jié)點(diǎn)的名稱及所述第二節(jié)點(diǎn)提供的業(yè)務(wù)的路由信息,則根據(jù)接收到的所述第二節(jié)點(diǎn)的名稱及所述第二節(jié)點(diǎn)提供的業(yè)務(wù)的路由信息更新所述節(jié)點(diǎn)管理列表。
本發(fā)明提供一種消息中間件的平滑擴(kuò)容方法,該方法中,在需要對(duì)消息中間件進(jìn)行擴(kuò)容時(shí),控制服務(wù)器接收增加的第一節(jié)點(diǎn)發(fā)送的第一節(jié)點(diǎn)的名稱及第一節(jié)點(diǎn)所提供的業(yè)務(wù)的路由信息,該控制服務(wù)器將該第一節(jié)點(diǎn)的名稱及該第一節(jié)點(diǎn)所提供的業(yè)務(wù)的路由信息之間的映射關(guān)系保存至節(jié)點(diǎn)管理列表中,且將該節(jié)點(diǎn)管理列表發(fā)送給接收端及發(fā)送端。通過(guò)由控制服務(wù)器管理節(jié)點(diǎn)管理列表,該節(jié)點(diǎn)管理列表包含消息中間件中節(jié)點(diǎn)的名稱及節(jié)點(diǎn)所提供的業(yè)務(wù)的路由信息之間的映射關(guān)系,使得在消息中間件中增加了第一節(jié)點(diǎn)以實(shí)現(xiàn)消息中間件的擴(kuò)容時(shí),能夠由控制服務(wù)器將增加的第一節(jié)點(diǎn)的名稱及該第一節(jié)點(diǎn)所提供的業(yè)務(wù)的路由信息之間的映射關(guān)系保存至節(jié)點(diǎn)管理列表中,并將該節(jié)點(diǎn)管理列表發(fā)送給接收端及發(fā)送端,使得接收端及發(fā)送端不需要在消息中間件進(jìn)行擴(kuò)容時(shí)在本地重新配置節(jié)點(diǎn)信息,而只需要接收控制服務(wù)器發(fā)送的節(jié)點(diǎn)管理列表,對(duì)于接收端及發(fā)送端來(lái)說(shuō),消息中間件的擴(kuò)容是完全透明的,因此,能夠有效實(shí)現(xiàn)消息中間件的擴(kuò)容對(duì)接收端及發(fā)送端的完全透明,即實(shí)現(xiàn)平滑擴(kuò)容。
附圖說(shuō)明
圖1為本發(fā)明實(shí)施例中消息中間件的結(jié)構(gòu)示意圖;
圖2為本發(fā)明實(shí)施例中消息中間件另一結(jié)構(gòu)示意圖;
圖3為本發(fā)明第一實(shí)施例中消息中間件的平滑擴(kuò)容方法的流程示意圖;
圖4為本發(fā)明圖3所示第一實(shí)施例的追加步驟的流程示意圖;
圖5為本發(fā)明第二實(shí)施例中消息中間件的平滑擴(kuò)容系統(tǒng)的功能模塊的示意圖;
圖6為本發(fā)明第三實(shí)施例中消息中間件的平滑擴(kuò)容系統(tǒng)的功能模塊的示意圖。
本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說(shuō)明。
具體實(shí)施方式
應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
由于現(xiàn)有技術(shù)中,通過(guò)橫向擴(kuò)容方式對(duì)消息中間件進(jìn)行擴(kuò)容時(shí),存在消息中間件的擴(kuò)容對(duì)發(fā)送端及接收端是不透明的,發(fā)送端及接收端仍然需要感知到消息中間件的擴(kuò)容的問(wèn)題。
為了解決上述技術(shù)問(wèn)題,本發(fā)明提出一種消息中間件的平滑擴(kuò)容方法,通過(guò)由控制服務(wù)器管理節(jié)點(diǎn)管理列表,該節(jié)點(diǎn)管理列表包含消息中間件中節(jié)點(diǎn)的名稱及節(jié)點(diǎn)所提供的業(yè)務(wù)的路由信息之間的映射關(guān)系,使得在消息中間件中增加了第一節(jié)點(diǎn)以實(shí)現(xiàn)消息中間件的擴(kuò)容時(shí),能夠由控制服務(wù)器將增加的第一節(jié)點(diǎn)的名稱及該第一節(jié)點(diǎn)所提供的業(yè)務(wù)的路由信息之間的映射關(guān)系保存至節(jié)點(diǎn)管理列表中,并將該節(jié)點(diǎn)管理列表發(fā)送給接收端及發(fā)送端,使得接收端及發(fā)送端不需要在消息中間件進(jìn)行擴(kuò)容時(shí)在本地重新配置節(jié)點(diǎn)信息,而只需要接收控制服務(wù)器發(fā)送的節(jié)點(diǎn)管理列表,對(duì)于接收端及發(fā)送端來(lái)說(shuō),消息中間件的擴(kuò)容是完全透明的,因此,能夠有效實(shí)現(xiàn)消息中間件的擴(kuò)容對(duì)接收端及發(fā)送端的完全透明,即實(shí)現(xiàn)平滑擴(kuò)容。
為了更好的理解本發(fā)明實(shí)施例中的技術(shù)方案,下面將介紹本發(fā)明實(shí)施例中消息中間件的結(jié)構(gòu),請(qǐng)參閱圖1,為本發(fā)明實(shí)施例中消息中間件的結(jié)構(gòu)示意圖,在圖1中,發(fā)送端和接收端接入消息中間件的業(yè)務(wù)系統(tǒng)中,分別與消息中間件中內(nèi)置的業(yè)務(wù)服務(wù)器及Controller(控制服務(wù)器)連接。其中,該Controller負(fù)責(zé)維護(hù)業(yè)務(wù)服務(wù)器的列表和業(yè)務(wù)服務(wù)器所提供的業(yè)務(wù)的路由信息,監(jiān)測(cè)業(yè)務(wù)服務(wù)器的運(yùn)行情況,以使接收端和發(fā)送端從該Controller中獲取業(yè)務(wù)服務(wù)器的運(yùn)行情況。該Controller包括RoutingInfo和Scheduler,該RoutingInfo表示業(yè)務(wù)服務(wù)器提供的業(yè)務(wù)的路由信息;所述Scheduler對(duì)節(jié)點(diǎn)中主業(yè)務(wù)服務(wù)器和備份業(yè)務(wù)服務(wù)器的切換進(jìn)行管理。該消息中間件還包括Admin;該Admin是消息中間件的管理控制器,且包括Topic Mgmt、User Mgmt和Permission Mgmt。其中,Topic Mgmt負(fù)責(zé)業(yè)務(wù)消息類型的創(chuàng)建和修改;User Mgmt對(duì)接入該消息中間件中的發(fā)送端和接收端進(jìn)行管理;該P(yáng)ermission Mgmt對(duì)接入該消息中間件中的發(fā)送端和接收端的權(quán)限進(jìn)行管理。其中,業(yè)務(wù)服務(wù)器負(fù)責(zé)所述業(yè)務(wù)消息的接收、發(fā)送和存儲(chǔ),該業(yè)務(wù)服務(wù)器包括Permission、HA(High Available,高可用性群集)Switcher、Remoting、Message Routing、Meta data mgmt、Message Store、Stat、Console和Log。其中,Permission控制有權(quán)限的發(fā)送端和接收端接入該業(yè)務(wù)服務(wù)器中;HA Switcher負(fù)責(zé)控制主業(yè)務(wù)服務(wù)器和備份業(yè)務(wù)服務(wù)器的自動(dòng)切換;其中,Remoting負(fù)責(zé)業(yè)務(wù)服務(wù)器的遠(yuǎn)程通信;其中,Message Routing負(fù)責(zé)業(yè)務(wù)服務(wù)器接收和發(fā)送業(yè)務(wù)消息;Meta data mgmt用于對(duì)業(yè)務(wù)服務(wù)器中的元數(shù)據(jù)進(jìn)行管理;Message Store對(duì)業(yè)務(wù)服務(wù)器所接收的業(yè)務(wù)消息進(jìn)行存儲(chǔ);Stat用于統(tǒng)計(jì)該業(yè)務(wù)服務(wù)器接收和發(fā)送的業(yè)務(wù)消息;Console負(fù)責(zé)接收上述Admin發(fā)送的控制命令;Log用于輸出與業(yè)務(wù)服務(wù)器運(yùn)行狀況有關(guān)的日志。
其中,上述架構(gòu)中僅以一個(gè)業(yè)務(wù)服務(wù)器為例進(jìn)行描述的,實(shí)際上在消息中間件中,一個(gè)節(jié)點(diǎn)是包含3個(gè)業(yè)務(wù)服務(wù)器,分別是一個(gè)主業(yè)務(wù)服務(wù)器和兩個(gè)備份業(yè)務(wù)服務(wù)器,在實(shí)際使用過(guò)程中,通常優(yōu)先使用主業(yè)務(wù)服務(wù)器,且在主業(yè)務(wù)服務(wù)器出現(xiàn)故障時(shí),將業(yè)務(wù)切換至備份業(yè)務(wù)服務(wù)器,并使用切換后的備份業(yè)務(wù)服務(wù)器。
此外,上述架構(gòu)中僅以一個(gè)controller為例進(jìn)行描述,在實(shí)際應(yīng)用中,消息中間件包含多個(gè)Controller構(gòu)成的集群。具體請(qǐng)參閱圖2,圖2為消息中間件另一結(jié)構(gòu)示意圖。
在圖2中,包含多個(gè)節(jié)點(diǎn),多個(gè)節(jié)點(diǎn)構(gòu)成業(yè)務(wù)服務(wù)器集群,其中,對(duì)于同一個(gè)節(jié)點(diǎn)中的業(yè)務(wù)服務(wù)器,其提供的業(yè)務(wù)是相同的,且業(yè)務(wù)的路由信息也是相同的,其中,Controller集群中的多個(gè)Controller所維護(hù)的業(yè)務(wù)服務(wù)器的列表和業(yè)務(wù)服務(wù)器所提供的業(yè)務(wù)的路由信息是完全相同的。
基于上述圖1及圖2所示的消息中間件的架構(gòu)示意圖,所述本發(fā)明提供一種消息中間件的平滑擴(kuò)容方法及系統(tǒng)。
請(qǐng)參閱圖3,為本發(fā)明第一實(shí)施例中消息中間件的平滑擴(kuò)容方法的流程示意圖,該方法包括:
步驟301、在需要對(duì)消息中間件進(jìn)行擴(kuò)容時(shí),控制服務(wù)器接收增加的第一節(jié)點(diǎn)發(fā)送的第一節(jié)點(diǎn)的名稱及所述第一節(jié)點(diǎn)所提供的業(yè)務(wù)的路由信息;
在本發(fā)明實(shí)施例中,存在對(duì)消息中間件的運(yùn)行狀態(tài)進(jìn)行監(jiān)控的監(jiān)控系統(tǒng),該監(jiān)控系統(tǒng)在監(jiān)控到消息中間件滿足擴(kuò)容條件時(shí),將發(fā)出擴(kuò)容提示,使得管理人員在得到該擴(kuò)容提示之后,可以在該消息中間件中增加節(jié)點(diǎn)。
其中,滿足擴(kuò)容條件為以下情況中的任意一種:網(wǎng)絡(luò)帶寬占用達(dá)到預(yù)設(shè)帶寬百分比,磁盤(pán)IO讀寫(xiě)負(fù)載達(dá)到預(yù)設(shè)負(fù)載值,響應(yīng)延時(shí)時(shí)間達(dá)到預(yù)設(shè)時(shí)間值。
其中,控制服務(wù)器將接收增加的第一節(jié)點(diǎn)發(fā)送的第一節(jié)點(diǎn)的名稱及該第一節(jié)點(diǎn)所提供的業(yè)務(wù)的路由信息。
步驟302、控制服務(wù)器將所述第一節(jié)點(diǎn)的名稱及所述第一節(jié)點(diǎn)所提供的業(yè)務(wù)的路由信息之間的映射關(guān)系保存至節(jié)點(diǎn)管理列表中;
步驟303、控制服務(wù)器將所述節(jié)點(diǎn)管理列表發(fā)送給接收端及發(fā)送端。
在本發(fā)明實(shí)施例中,控制服務(wù)器中設(shè)置節(jié)點(diǎn)管理列表,該節(jié)點(diǎn)管理列表中包含消息中間件中各個(gè)節(jié)點(diǎn)的名稱及各個(gè)節(jié)點(diǎn)所提供的業(yè)務(wù)的路由信息之間的映射關(guān)系,其中,通過(guò)在節(jié)點(diǎn)管理列表中包含各個(gè)節(jié)點(diǎn)的名稱,并在節(jié)點(diǎn)管理列表中包含各個(gè)節(jié)點(diǎn)所提供的業(yè)務(wù)的路由信息,能夠有效實(shí)現(xiàn)業(yè)務(wù)服務(wù)器提供的業(yè)務(wù)的路由信息的維護(hù)。
在本發(fā)明實(shí)施例中,在對(duì)消息中間件進(jìn)行擴(kuò)容時(shí),控制服務(wù)器將接收到的擴(kuò)容增加的第一節(jié)點(diǎn)的名稱及第一節(jié)點(diǎn)所提供的業(yè)務(wù)的路由信息之間的映射關(guān)系保存至節(jié)點(diǎn)管理列表中,且控制服務(wù)器還將該節(jié)點(diǎn)管理列表發(fā)送給接收端及發(fā)送端,使得接收端及發(fā)送端能夠更新節(jié)點(diǎn)管理列表,因此,對(duì)于接收端及發(fā)送端來(lái)說(shuō),對(duì)消息中間件進(jìn)行擴(kuò)容之后,僅需要更新其保存的節(jié)點(diǎn)管理列表即可,能夠有效的實(shí)現(xiàn)發(fā)送端、接收端及業(yè)務(wù)服務(wù)器之間的解耦,實(shí)現(xiàn)消息中間件的擴(kuò)容對(duì)接收端及發(fā)送端的完全透明,即實(shí)現(xiàn)平滑擴(kuò)容。
請(qǐng)參閱圖4,為圖3所示第一實(shí)施例中消息中間件的平滑擴(kuò)容方法的追加步驟的流程示意圖,該追加步驟包括:
步驟401、在增加的所述第一節(jié)點(diǎn)啟動(dòng)后,所述第一節(jié)點(diǎn)創(chuàng)建所述第一節(jié)點(diǎn)所提供的業(yè)務(wù);
步驟402、將所述第一節(jié)點(diǎn)的名稱及所述第一節(jié)點(diǎn)所提供的業(yè)務(wù)的路由信息發(fā)送給所述控制服務(wù)器。
在本發(fā)明實(shí)施例中,監(jiān)控系統(tǒng)在檢測(cè)到消息中間件滿足擴(kuò)容條件時(shí),即可確定該消息中間件需要擴(kuò)容,且在消息中間件中增加第一節(jié)點(diǎn),且該第一節(jié)點(diǎn)啟動(dòng)之后,該第一節(jié)點(diǎn)將創(chuàng)建該第一節(jié)點(diǎn)所提供的業(yè)務(wù),并將該第一節(jié)點(diǎn)的名稱及該第一節(jié)點(diǎn)所提供的業(yè)務(wù)的路由信息發(fā)送給控制服務(wù)器。
其中,第一節(jié)點(diǎn)創(chuàng)建第一節(jié)點(diǎn)所提供的業(yè)務(wù)是指第一節(jié)點(diǎn)中的主業(yè)務(wù)服務(wù)器及備份業(yè)務(wù)服務(wù)器分別創(chuàng)建其提供的業(yè)務(wù),且主業(yè)務(wù)服務(wù)器和備份業(yè)務(wù)服務(wù)器創(chuàng)建的業(yè)務(wù)是相同的。
在本發(fā)明實(shí)施例中,在對(duì)消息中間件進(jìn)行擴(kuò)容時(shí),通過(guò)由增加的第一節(jié)點(diǎn)將該第一節(jié)點(diǎn)的名稱及該第一節(jié)點(diǎn)所提供的業(yè)務(wù)的路由信息發(fā)送給控制服務(wù)器,使得能夠由該控制服務(wù)器實(shí)現(xiàn)消息中間件的平滑擴(kuò)容。
進(jìn)一步的,在本發(fā)明實(shí)施例中,發(fā)送端及接收端還將定時(shí)從控制服務(wù)器獲取節(jié)點(diǎn)管理列表,即圖3所示的消息中間件的平滑擴(kuò)容方法還包括以下步驟:
若接收到接收端或發(fā)送端定時(shí)發(fā)送的節(jié)點(diǎn)管理列表的獲取請(qǐng)求,則向所述接收端或發(fā)送端發(fā)送所述節(jié)點(diǎn)管理列表。
在本發(fā)明實(shí)施例中,控制服務(wù)器在接收到接收端或發(fā)送端定時(shí)發(fā)送的節(jié)點(diǎn)管理列表的獲取請(qǐng)求之后,將其保存的節(jié)點(diǎn)管理列表發(fā)送給對(duì)應(yīng)的接收端或發(fā)送端,使得接收端或發(fā)送端還能夠通過(guò)定時(shí)發(fā)送節(jié)點(diǎn)管理列表的方式獲取節(jié)點(diǎn)管理列表。
進(jìn)一步的,在本發(fā)明實(shí)施例中,節(jié)點(diǎn)也將定時(shí)向控制服務(wù)器上報(bào)其提供的業(yè)務(wù)的路由信息,即圖3所示的消息中間件的平滑擴(kuò)容方法還包括以下步驟:
若接收到第二節(jié)點(diǎn)定時(shí)上報(bào)的第二節(jié)點(diǎn)的名稱及所述第二節(jié)點(diǎn)提供的業(yè)務(wù)的路由信息,則根據(jù)接收到的所述第二節(jié)點(diǎn)的名稱及所述第二節(jié)點(diǎn)提供的業(yè)務(wù)的路由信息更新所述節(jié)點(diǎn)管理列表。
在本發(fā)明實(shí)施例中,消息中間件中的節(jié)點(diǎn)將定時(shí)向控制服務(wù)器進(jìn)行上報(bào),且控制服務(wù)器若接收到第二節(jié)點(diǎn)定時(shí)上報(bào)的第二節(jié)點(diǎn)的名稱及第二節(jié)點(diǎn)提供的業(yè)務(wù)的路由信息,則根據(jù)接收到的該第二節(jié)點(diǎn)的名稱及該第二節(jié)點(diǎn)提供的業(yè)務(wù)的路由信息更新節(jié)點(diǎn)管理列表,具體可以包括:利用第二節(jié)點(diǎn)的名稱查找節(jié)點(diǎn)管理列表,確定在節(jié)點(diǎn)管理列表中與該第二節(jié)點(diǎn)的名稱對(duì)應(yīng)的路由錄信息,并利用接收到的第二節(jié)點(diǎn)提供的業(yè)務(wù)的路由信息替換在節(jié)點(diǎn)管理列表中查找到的路由信息,使得能夠有效實(shí)現(xiàn)節(jié)點(diǎn)管理列表中節(jié)點(diǎn)所提供的業(yè)務(wù)的路由信息的更新。
請(qǐng)參閱圖5,為本發(fā)明第二實(shí)施例中消息中間件的平滑擴(kuò)容系統(tǒng)的結(jié)構(gòu)示意圖,該平滑擴(kuò)容系統(tǒng)包含控制服務(wù)器501,該控制服務(wù)器501包括:接收模塊502、保存模塊503及發(fā)送模塊504。
接收模塊502,用于在需要對(duì)消息中間件進(jìn)行擴(kuò)容時(shí),接收增加的第一節(jié)點(diǎn)發(fā)送的第一節(jié)點(diǎn)的名稱及所述第一節(jié)點(diǎn)所提供的業(yè)務(wù)的路由信息;
在本發(fā)明實(shí)施例中,存在對(duì)消息中間件的運(yùn)行狀態(tài)進(jìn)行監(jiān)控的監(jiān)控系統(tǒng),該監(jiān)控系統(tǒng)在監(jiān)控到消息中間件滿足擴(kuò)容條件時(shí),將發(fā)出擴(kuò)容提示,使得管理人員在得到該擴(kuò)容提示之后,可以在該消息中間件中增加節(jié)點(diǎn)。
其中,滿足擴(kuò)容條件為以下情況中的任意一種:網(wǎng)絡(luò)帶寬占用達(dá)到預(yù)設(shè)帶寬百分比,磁盤(pán)IO讀寫(xiě)負(fù)載達(dá)到預(yù)設(shè)負(fù)載值,響應(yīng)延時(shí)時(shí)間達(dá)到預(yù)設(shè)時(shí)間值。
其中,控制服務(wù)器501中的接收模塊502將接收增加的第一節(jié)點(diǎn)發(fā)送的第一節(jié)點(diǎn)的名稱及該第一節(jié)點(diǎn)所提供的業(yè)務(wù)的路由信息。
保存模塊503,用于將所述第一節(jié)點(diǎn)的名稱及所述第一節(jié)點(diǎn)所提供的業(yè)務(wù)的路由信息之間的映射關(guān)系保存至節(jié)點(diǎn)管理列表中;
發(fā)送模塊504,用于將所述節(jié)點(diǎn)管理列表發(fā)送給接收端及發(fā)送端。
在本發(fā)明實(shí)施例中,控制服務(wù)器中設(shè)置節(jié)點(diǎn)管理列表,該節(jié)點(diǎn)管理列表中包含消息中間件中各個(gè)節(jié)點(diǎn)的名稱及各個(gè)節(jié)點(diǎn)所提供的業(yè)務(wù)的路由信息之間的映射關(guān)系,其中,通過(guò)在節(jié)點(diǎn)管理列表中包含各個(gè)節(jié)點(diǎn)的名稱,并在節(jié)點(diǎn)管理列表中包含各個(gè)節(jié)點(diǎn)所提供的業(yè)務(wù)的路由信息,能夠有效實(shí)現(xiàn)業(yè)務(wù)服務(wù)器提供的業(yè)務(wù)的路由信息的維護(hù)。
在本發(fā)明實(shí)施例中,在對(duì)消息中間件進(jìn)行擴(kuò)容時(shí),保存模塊503將接收到的擴(kuò)容增加的第一節(jié)點(diǎn)的名稱及第一節(jié)點(diǎn)所提供的業(yè)務(wù)的路由信息之間的映射關(guān)系保存至節(jié)點(diǎn)管理列表中,且發(fā)送模塊504還將該節(jié)點(diǎn)管理列表發(fā)送給接收端及發(fā)送端,使得接收端及發(fā)送端能夠更新節(jié)點(diǎn)管理列表,因此,對(duì)于接收端及發(fā)送端來(lái)說(shuō),對(duì)消息中間件進(jìn)行擴(kuò)容之后,僅需要更新其保存的節(jié)點(diǎn)管理列表即可,能夠有效的實(shí)現(xiàn)發(fā)送端、接收端及業(yè)務(wù)服務(wù)器之間的解耦,實(shí)現(xiàn)消息中間件的擴(kuò)容對(duì)接收端及發(fā)送端的完全透明,即實(shí)現(xiàn)平滑擴(kuò)容。
基于圖5所示第二實(shí)施例,請(qǐng)參閱圖6,為本發(fā)明第三實(shí)施例中消息中間件的平滑擴(kuò)容系統(tǒng)的功能模塊的示意圖,該系統(tǒng)包括如圖5所示第二實(shí)施例中的控制服務(wù)器501,且控制服務(wù)器501包括:接收模塊502、保存模塊503及發(fā)送模塊504,且與圖5所示第二實(shí)施例中描述的內(nèi)容相似,此處不做贅述。
在本發(fā)明實(shí)施例中,上述系統(tǒng)還包括:增加的第一節(jié)點(diǎn)601,所述第一節(jié)點(diǎn)601包括:
創(chuàng)建模塊602,用于在增加的所述第一節(jié)點(diǎn)啟動(dòng)后,創(chuàng)建所述第一節(jié)點(diǎn)所提供的業(yè)務(wù);
信息發(fā)送模塊603,用于將所述第一節(jié)點(diǎn)的名稱及所述第一節(jié)點(diǎn)所提供的業(yè)務(wù)的路由信息發(fā)送給所述控制服務(wù)器501。
在本發(fā)明實(shí)施例中,監(jiān)控系統(tǒng)在檢測(cè)到消息中間件滿足擴(kuò)容條件時(shí),即可確定該消息中間件需要擴(kuò)容,且在消息中間件中增加第一節(jié)點(diǎn)601,且該第一節(jié)點(diǎn)601啟動(dòng)之后,該第一節(jié)點(diǎn)601中的創(chuàng)建模塊602將創(chuàng)建該第一節(jié)點(diǎn)所提供的業(yè)務(wù),并由信息發(fā)送模塊603將該第一節(jié)點(diǎn)的名稱及該第一節(jié)點(diǎn)所提供的業(yè)務(wù)的路由信息發(fā)送給控制服務(wù)器。
其中,第一節(jié)點(diǎn)601創(chuàng)建第一節(jié)點(diǎn)601所提供的業(yè)務(wù)是指第一節(jié)點(diǎn)601中的主業(yè)務(wù)服務(wù)器及備份業(yè)務(wù)服務(wù)器分別創(chuàng)建其提供的業(yè)務(wù),且主業(yè)務(wù)服務(wù)器和備份業(yè)務(wù)服務(wù)器創(chuàng)建的業(yè)務(wù)是相同的。
在本發(fā)明實(shí)施例中,在對(duì)消息中間件進(jìn)行擴(kuò)容時(shí),通過(guò)由增加的第一節(jié)點(diǎn)601將該第一節(jié)點(diǎn)的名稱及該第一節(jié)點(diǎn)所提供的業(yè)務(wù)的路由信息發(fā)送給控制服務(wù)器,使得能夠由該控制服務(wù)器實(shí)現(xiàn)消息中間件的平滑擴(kuò)容。
進(jìn)一步的,在上述圖5所示第二實(shí)施例或者圖6所示第三實(shí)施例中,所述控制服務(wù)器的所述發(fā)送模塊504還用于:
若接收到接收端或發(fā)送端定時(shí)發(fā)送的節(jié)點(diǎn)管理列表的獲取請(qǐng)求,則向所述接收端或發(fā)送端發(fā)送所述節(jié)點(diǎn)管理列表。
在本發(fā)明實(shí)施例中,控制服務(wù)器在接收到接收端或發(fā)送端定時(shí)發(fā)送的節(jié)點(diǎn)管理列表的獲取請(qǐng)求之后,發(fā)送模塊504將控制服務(wù)器保存的節(jié)點(diǎn)管理列表發(fā)送給對(duì)應(yīng)的接收端或發(fā)送端,使得接收端或發(fā)送端還能夠通過(guò)定時(shí)發(fā)送節(jié)點(diǎn)管理列表的方式獲取節(jié)點(diǎn)管理列表。
進(jìn)一步的,在上述圖5所示第二實(shí)施例或者圖6所示第三實(shí)施例中,所述控制服務(wù)器還包括:
更新模塊,用于若接收到第二節(jié)點(diǎn)定時(shí)上報(bào)的第二節(jié)點(diǎn)的名稱及所述第二節(jié)點(diǎn)提供的業(yè)務(wù)的路由信息,則根據(jù)接收到的所述第二節(jié)點(diǎn)的名稱及所述第二節(jié)點(diǎn)提供的業(yè)務(wù)的路由信息更新所述節(jié)點(diǎn)管理列表。
在本發(fā)明實(shí)施例中,消息中間件中的節(jié)點(diǎn)將定時(shí)向控制服務(wù)器進(jìn)行上報(bào),且控制服務(wù)器若接收到第二節(jié)點(diǎn)定時(shí)上報(bào)的第二節(jié)點(diǎn)的名稱及第二節(jié)點(diǎn)提供的業(yè)務(wù)的路由信息,則更新模塊根據(jù)接收到的該第二節(jié)點(diǎn)的名稱及該第二節(jié)點(diǎn)提供的業(yè)務(wù)的路由信息更新節(jié)點(diǎn)管理列表,具體可以包括:利用第二節(jié)點(diǎn)的名稱查找節(jié)點(diǎn)管理列表,確定在節(jié)點(diǎn)管理列表中與該第二節(jié)點(diǎn)的名稱對(duì)應(yīng)的路由錄信息,并利用接收到的第二節(jié)點(diǎn)提供的業(yè)務(wù)的路由信息替換在節(jié)點(diǎn)管理列表中查找到的路由信息,使得能夠有效實(shí)現(xiàn)節(jié)點(diǎn)管理列表中節(jié)點(diǎn)所提供的業(yè)務(wù)的路由信息的更新。
通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到上述實(shí)施例方法可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)(如ROM/RAM、磁碟、光盤(pán))中,包括若干指令用以使得一臺(tái)終端設(shè)備(可以是手機(jī),計(jì)算機(jī),服務(wù)器,空調(diào)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例的方法。
以上僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說(shuō)明書(shū)及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。