国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種遠(yuǎn)程調(diào)用方法及遠(yuǎn)程調(diào)用裝置與流程

      文檔序號(hào):11458527閱讀:152來(lái)源:國(guó)知局
      一種遠(yuǎn)程調(diào)用方法及遠(yuǎn)程調(diào)用裝置與流程

      本發(fā)明涉及計(jì)算機(jī)應(yīng)用技術(shù)領(lǐng)域,更具體地,涉及一種遠(yuǎn)程調(diào)用方法及遠(yuǎn)程調(diào)用裝置。



      背景技術(shù):

      軟件系統(tǒng)通常會(huì)對(duì)在不同進(jìn)程中運(yùn)行的軟件進(jìn)行遠(yuǎn)程調(diào)用,這些進(jìn)程很可能位于網(wǎng)絡(luò)上的不同機(jī)器上。進(jìn)程內(nèi)調(diào)用和遠(yuǎn)程調(diào)用的一個(gè)很大的不同是遠(yuǎn)程調(diào)用經(jīng)常會(huì)出現(xiàn)失敗或者無(wú)響應(yīng)掛起直到超時(shí)的問(wèn)題。更糟糕的是,如果在一個(gè)無(wú)響應(yīng)的服務(wù)上發(fā)起許多個(gè)調(diào)用,那么將很可能導(dǎo)致系統(tǒng)耗盡關(guān)鍵資源,從而導(dǎo)致多個(gè)系統(tǒng)上的級(jí)聯(lián)故障。

      針對(duì)上述問(wèn)題,目前提出了斷路器模式來(lái)避免這種級(jí)聯(lián)故障。斷路器的原理非常簡(jiǎn)單,就是使用斷路器封裝受到調(diào)用的方法,斷路器能夠監(jiān)控調(diào)用該方法的失敗情況。一旦調(diào)用該方法的失敗次數(shù)超過(guò)了一定的閾值,斷路器就處于打開狀態(tài),拒絕后續(xù)到達(dá)斷路器上的遠(yuǎn)程調(diào)用請(qǐng)求,而避免了受保護(hù)方法的調(diào)用。

      采用上述解決方式,由于斷路器打開的條件閾值是在遠(yuǎn)程調(diào)用程序之前設(shè)置好的,一旦遠(yuǎn)程調(diào)用程序啟動(dòng)后,斷路器打開的條件閾值是無(wú)法更改的。這樣,在遠(yuǎn)程調(diào)用程序啟動(dòng)后,預(yù)先設(shè)置的斷路器打開的條件閾值很可能不能反映整個(gè)過(guò)程中真實(shí)的情況。



      技術(shù)實(shí)現(xiàn)要素:

      本發(fā)明提供一種遠(yuǎn)程調(diào)用方法及遠(yuǎn)程調(diào)用裝置,克服了現(xiàn)有的一旦設(shè)置了斷路器的開閉條件、就無(wú)法修改的問(wèn)題。

      根據(jù)本發(fā)明的一個(gè)方面,提供了一種遠(yuǎn)程調(diào)用方法,包括:

      s1,內(nèi)嵌jetty服務(wù)器,接收外部發(fā)送的斷路器開閉請(qǐng)求,其中,所述斷路器開閉請(qǐng)求中攜帶有斷路器標(biāo)識(shí)信息和所請(qǐng)求的斷路器的開閉狀態(tài)信息;

      s2,從hashmap中查找得到與所述斷路器標(biāo)識(shí)信息對(duì)應(yīng)的斷路器原有的開閉狀態(tài),其中,hashmap中表征斷路器標(biāo)識(shí)信息和斷路器的開閉狀態(tài)的映射關(guān)系;

      s3,根據(jù)所述斷路器開閉請(qǐng)求中所請(qǐng)求的斷路器的開閉狀態(tài),對(duì)從hashmap中查找得到的斷路器原有的開閉狀態(tài)進(jìn)行更新,并根據(jù)更新后的斷路器的開閉狀態(tài)來(lái)允許或拒絕遠(yuǎn)程調(diào)用請(qǐng)求。

      本發(fā)明的有益效果為:通過(guò)在原有的系統(tǒng)中內(nèi)嵌jetty服務(wù)器,該jetty服務(wù)器接收外部的斷路器開閉請(qǐng)求,能夠在調(diào)用程序啟動(dòng)后,對(duì)斷路器的開閉狀態(tài)進(jìn)行更新,使斷路器的開閉狀態(tài)更符合實(shí)際情況;在斷路器中引入jetty服務(wù)器,利用服務(wù)器來(lái)實(shí)現(xiàn)對(duì)斷路器的開閉狀態(tài)的更新,不會(huì)影響斷路器本身的運(yùn)行。

      在上述技術(shù)方案的基礎(chǔ)上,本發(fā)明還可以作如下改進(jìn)。

      可選的,在所述步驟s1之前還包括:

      為每一個(gè)遠(yuǎn)程調(diào)用的方法配置一個(gè)斷路器來(lái)封裝該方法;

      對(duì)遠(yuǎn)程調(diào)用斷路器封裝的方法的調(diào)用狀況進(jìn)行分析,來(lái)確定該斷路器的開閉狀態(tài),并將所述斷路器的開閉狀態(tài)存儲(chǔ)于hashmap中。

      可選的,所述對(duì)遠(yuǎn)程調(diào)用斷路器封裝的方法的調(diào)用狀況進(jìn)行分析來(lái)確定該斷路器的開閉狀態(tài)具體包括:

      統(tǒng)計(jì)在預(yù)設(shè)周期內(nèi)遠(yuǎn)程調(diào)用斷路器封裝的方法的失敗次數(shù),當(dāng)失敗次數(shù)達(dá)到第一預(yù)設(shè)次數(shù)時(shí),將該方法對(duì)應(yīng)的斷路器設(shè)置為打開狀態(tài),否則,將所述斷路器設(shè)置為閉合狀態(tài);或者,

      統(tǒng)計(jì)預(yù)設(shè)周期內(nèi)遠(yuǎn)程調(diào)用斷路器封裝的方法的總次數(shù)以及調(diào)用失敗的次數(shù),當(dāng)調(diào)用失敗的次數(shù)與調(diào)用的總次數(shù)的比值達(dá)到第一預(yù)設(shè)比值時(shí),將所述斷路器設(shè)置為打開狀態(tài),否則,將所述斷路器設(shè)置為閉合狀態(tài)。

      可選的,還包括:

      將在預(yù)設(shè)周期內(nèi)遠(yuǎn)程調(diào)用斷路器封裝的方法的失敗次數(shù)、成功次數(shù)以及調(diào)用失敗的次數(shù)與調(diào)用的總次數(shù)的比值顯示在界面上。

      可選的,所述步驟s1之前還包括:

      s0,根據(jù)在預(yù)設(shè)周期內(nèi)遠(yuǎn)程調(diào)用斷路器封裝的方法的失敗次數(shù)或者在界面上顯示的預(yù)設(shè)周期內(nèi)遠(yuǎn)程調(diào)用斷路器封裝的方法失敗的次數(shù)與總次數(shù)的比值,確定向所述jetty服務(wù)器發(fā)送斷路器開閉請(qǐng)求。

      可選的,所述步驟s0具體包括:

      當(dāng)預(yù)設(shè)周期內(nèi)遠(yuǎn)程調(diào)用斷路器封裝的方法失敗的次數(shù)達(dá)到第二預(yù)設(shè)次數(shù)時(shí),向所述jetty服務(wù)器發(fā)送斷路器打開的請(qǐng)求,其中,所述第二預(yù)設(shè)次數(shù)與所述第一預(yù)設(shè)次數(shù)不相等;或者,

      當(dāng)預(yù)設(shè)周期內(nèi)遠(yuǎn)程調(diào)用斷路器封裝的方法失敗的次數(shù)與總次數(shù)的比值達(dá)到第二預(yù)設(shè)比值,向所述jetty服務(wù)器發(fā)送斷路器打開的請(qǐng)求,其中,所述第二預(yù)設(shè)比值與所述第一預(yù)設(shè)比值不相等。

      可選的,所述步驟s0具體包括:

      實(shí)時(shí)監(jiān)控遠(yuǎn)程調(diào)用斷路器封裝的方法的次數(shù),當(dāng)在預(yù)設(shè)時(shí)間內(nèi)遠(yuǎn)程調(diào)用斷路器封裝的方法的次數(shù)下降到第三預(yù)設(shè)次數(shù),向所述jety服務(wù)器發(fā)送斷路器的閉合請(qǐng)求。

      根據(jù)本發(fā)明的另一個(gè)方面,還提供了一種遠(yuǎn)程調(diào)用裝置,包括斷路器和內(nèi)嵌的jetty服務(wù)器,所述jetty服務(wù)器包括:

      接收模塊,用于接收外部發(fā)送的斷路器開閉請(qǐng)求,其中,所述斷路器開閉請(qǐng)求中攜帶有斷路器標(biāo)識(shí)信息和所請(qǐng)求的斷路器的開閉狀態(tài);

      查找模塊,用于從hashmap中查找得到與所述斷路器標(biāo)識(shí)信息對(duì)應(yīng)斷路器原有的開閉狀態(tài),其中,hashmap表征斷路器標(biāo)識(shí)信息與斷路器的開閉狀態(tài)的映射關(guān)系;

      更新模塊,用于根據(jù)所述斷路器開閉請(qǐng)求中所請(qǐng)求的斷路器的開閉狀態(tài),對(duì)從hashmap中查找得到的斷路器原有的開閉狀態(tài)進(jìn)行更新;

      所述斷路器,用于根據(jù)hashmap中更新后的斷路器的開閉狀態(tài)來(lái)允許或拒絕遠(yuǎn)程調(diào)用請(qǐng)求。

      可選的,所述斷路器用來(lái)封裝對(duì)應(yīng)的方法,所述斷路器包括分析模塊;

      所述分析模塊,用于對(duì)遠(yuǎn)程調(diào)用斷路器封裝的方法的調(diào)用狀況進(jìn)行分析,來(lái)確定斷路器的開閉狀態(tài),并將斷路器的開閉狀態(tài)存儲(chǔ)于hashmap中。

      可選的,所述接收模塊具體用于:

      接收外部根據(jù)在預(yù)設(shè)周期內(nèi)遠(yuǎn)程調(diào)用斷路器封裝的方法的失敗次數(shù)向所述jetty服務(wù)器發(fā)送斷路器開閉請(qǐng)求;或者,

      接收外部根據(jù)預(yù)設(shè)周期內(nèi)遠(yuǎn)程調(diào)用斷路器封裝的方法失敗的次數(shù)與總次數(shù)的比值,向所述jetty服務(wù)器發(fā)送斷路器開閉請(qǐng)求。

      附圖說(shuō)明

      圖1為本發(fā)明一個(gè)實(shí)施例的遠(yuǎn)程調(diào)用方法流程圖;

      圖2為本發(fā)明另一個(gè)實(shí)施例的遠(yuǎn)程調(diào)用裝置中jetty服務(wù)器的內(nèi)部連接框圖;

      圖3為本發(fā)明又一個(gè)實(shí)施例的遠(yuǎn)程調(diào)用裝置整體連接框圖;

      圖4為本發(fā)明又一個(gè)實(shí)施例的遠(yuǎn)程調(diào)用裝置的測(cè)試設(shè)備連接框圖。

      具體實(shí)施方式

      下面結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明的具體實(shí)施方式作進(jìn)一步詳細(xì)描述。以下實(shí)施例用于說(shuō)明本發(fā)明,但不用來(lái)限制本發(fā)明的范圍。

      參見圖1,為本發(fā)明一個(gè)實(shí)施例的遠(yuǎn)程調(diào)用方法,應(yīng)用在使用斷路器進(jìn)行遠(yuǎn)程調(diào)用的方法保護(hù)方面。該遠(yuǎn)程調(diào)用方法包括:s1,內(nèi)嵌jetty服務(wù)器,所述jetty服務(wù)器接收外部發(fā)送的斷路器開閉請(qǐng)求,其中,所述斷路器開閉請(qǐng)求中攜帶有斷路器標(biāo)識(shí)信息和所請(qǐng)求的斷路器的開閉狀態(tài);s2,從hashmap中查找得到與所述斷路器標(biāo)識(shí)信息對(duì)應(yīng)的斷路器原有的開閉狀態(tài);s3,根據(jù)所述斷路器開閉請(qǐng)求所請(qǐng)求的斷路器的開閉狀態(tài),對(duì)從hashmap中查找得到的斷路器原有的開閉狀態(tài)進(jìn)行更新,并根據(jù)更新后的斷路器的開閉狀態(tài)來(lái)允許或拒絕遠(yuǎn)程調(diào)用請(qǐng)求。

      在對(duì)不同進(jìn)程中運(yùn)行的軟件進(jìn)行遠(yuǎn)程調(diào)用時(shí),這些進(jìn)程很可能分別位于網(wǎng)絡(luò)上的不同機(jī)器上。遠(yuǎn)程調(diào)用經(jīng)常會(huì)出現(xiàn)調(diào)用失敗或者無(wú)響應(yīng)掛起直至超時(shí)的情況。若在無(wú)響應(yīng)的服務(wù)器上發(fā)起多個(gè)調(diào)用,將很可能導(dǎo)致系統(tǒng)耗盡關(guān)鍵資源,從而導(dǎo)致多個(gè)系統(tǒng)上的級(jí)聯(lián)故障。因此,采用斷路器來(lái)避免這種級(jí)聯(lián)故障?,F(xiàn)有解決方式通常是通過(guò)統(tǒng)計(jì)在預(yù)定周期內(nèi)調(diào)用一個(gè)方法失敗的次數(shù)來(lái)確定是否要打開對(duì)應(yīng)的斷路器,為斷路器打開設(shè)置條件閾值。但是當(dāng)調(diào)用程序啟動(dòng)后,這個(gè)設(shè)置的條件閾值是不能夠更改的。因此,為了解決這個(gè)技術(shù)問(wèn)題,本實(shí)施例在原有的程序中內(nèi)嵌了一個(gè)jetty服務(wù)器,用來(lái)接收外部發(fā)送的斷路器開閉請(qǐng)求,并根據(jù)請(qǐng)求中的斷路器標(biāo)識(shí)信息在hashmap中查找該斷路器原有的開閉狀態(tài),以及根據(jù)外部請(qǐng)求中所請(qǐng)求的斷路器的開閉狀態(tài)來(lái)更改hashmap中斷路器原來(lái)的開閉狀態(tài)。其中,hashmap中存儲(chǔ)有斷路器標(biāo)識(shí)信息和斷路器的開閉狀態(tài)的映射關(guān)系。hashmap中對(duì)斷路器的開閉狀態(tài)進(jìn)行更新后,根據(jù)更新后的斷路器的開閉狀態(tài),對(duì)外部的遠(yuǎn)程調(diào)用請(qǐng)求進(jìn)行允許或拒絕,即更新后的斷路器為打開狀態(tài),則拒絕遠(yuǎn)程調(diào)用請(qǐng)求,若更新后的斷路器處于閉合狀態(tài),則允許遠(yuǎn)程調(diào)用請(qǐng)求。

      本實(shí)施例通過(guò)在原有的程序中內(nèi)嵌jetty服務(wù)器,該jetty服務(wù)器接收外部的斷路器開閉請(qǐng)求,能夠在調(diào)用程序啟動(dòng)后,對(duì)斷路器的開閉狀態(tài)進(jìn)行更新,使斷路器的開閉狀態(tài)更符合實(shí)際情況;在斷路器中引入jetty服務(wù)器,利用服務(wù)器來(lái)實(shí)現(xiàn)對(duì)斷路器的開閉狀態(tài)的更新,不會(huì)影響斷路器本身的運(yùn)行。

      在本發(fā)明的一個(gè)實(shí)施例中,在上述步驟s1之前還包括:為每一個(gè)遠(yuǎn)程調(diào)用的方法配置一個(gè)斷路器來(lái)封裝該方法;對(duì)遠(yuǎn)程調(diào)用斷路器封裝的方法的調(diào)用狀況進(jìn)行分析來(lái)確定該斷路器的開閉狀態(tài),并將所述斷路器的開閉狀態(tài)存儲(chǔ)于hashmap中。

      在遠(yuǎn)程調(diào)用的過(guò)程中,為了保護(hù)所要調(diào)用的方法,為每一個(gè)遠(yuǎn)程調(diào)用的方法配置一個(gè)斷路器,采用該斷路器來(lái)封裝對(duì)應(yīng)的方法,根據(jù)遠(yuǎn)程調(diào)用該方法的調(diào)用情況來(lái)來(lái)決定將斷路器打開還是關(guān)閉。當(dāng)斷路器打開時(shí),斷路器拒絕后續(xù)的遠(yuǎn)程調(diào)用請(qǐng)求;若斷路器閉合,則斷路器允許后續(xù)的遠(yuǎn)程調(diào)用請(qǐng)求,利用斷路器來(lái)保護(hù)受調(diào)用的方法,避免由于網(wǎng)絡(luò)狀況不良或者遠(yuǎn)程調(diào)用的訪問(wèn)量非常大時(shí)發(fā)生的級(jí)聯(lián)故障。

      在本發(fā)明的另一個(gè)實(shí)施例中,所述對(duì)遠(yuǎn)程調(diào)用斷路器封裝的方法的調(diào)用狀況進(jìn)行分析來(lái)確定該斷路器的開閉狀態(tài)具體包括:統(tǒng)計(jì)在預(yù)設(shè)周期內(nèi)遠(yuǎn)程調(diào)用斷路器封裝的方法的失敗次數(shù),當(dāng)失敗次數(shù)達(dá)到第一預(yù)設(shè)次數(shù)時(shí),將該方法對(duì)應(yīng)的斷路器設(shè)置為打開狀態(tài),否則,將所述斷路器設(shè)置為閉合狀態(tài);或者,統(tǒng)計(jì)預(yù)設(shè)周期內(nèi)遠(yuǎn)程調(diào)用與斷路器封裝的方法的總次數(shù)以及調(diào)用失敗的次數(shù),當(dāng)調(diào)用失敗的次數(shù)與調(diào)用的總次數(shù)的比值達(dá)到第一預(yù)設(shè)比值時(shí),將所述斷路器設(shè)置為打開狀態(tài),否則,將所述斷路器設(shè)置為閉合狀態(tài)。

      本實(shí)施例中對(duì)是否打開斷路器的條件進(jìn)行了設(shè)置,具體的,在預(yù)設(shè)周期內(nèi),若遠(yuǎn)程調(diào)用一個(gè)方法失敗的次數(shù)達(dá)到第一預(yù)設(shè)次數(shù),表明調(diào)用該方法出現(xiàn)問(wèn)題,其中可能是網(wǎng)絡(luò)故障的原因,也可能是訪問(wèn)量過(guò)高系統(tǒng)崩潰等原因,總之,在后期的一端時(shí)間內(nèi)不適宜再調(diào)用該方法,因此,打開與該方法對(duì)應(yīng)的斷路器,拒絕后續(xù)對(duì)該方法的遠(yuǎn)程調(diào)用請(qǐng)求。若在預(yù)設(shè)周期內(nèi)遠(yuǎn)程調(diào)用該方法失敗的次數(shù)還沒有達(dá)到第一預(yù)設(shè)次數(shù),則將對(duì)應(yīng)的斷路器設(shè)置為閉合狀態(tài)。或者斷路器打開的另外一種條件,在預(yù)設(shè)周期內(nèi),若遠(yuǎn)程調(diào)用一個(gè)方法失敗的次數(shù)與調(diào)用該方法的總次數(shù)之間的比值達(dá)到第二預(yù)設(shè)比值,則打開斷路器,拒絕后續(xù)的遠(yuǎn)程調(diào)用請(qǐng)求;否則,閉合斷路器,允許后續(xù)的遠(yuǎn)程調(diào)用請(qǐng)求。

      本實(shí)施例對(duì)斷路器打開的條件進(jìn)行了條件設(shè)置,當(dāng)達(dá)到了條件時(shí),打開斷路器,對(duì)要調(diào)用的方法進(jìn)行保護(hù),避免系統(tǒng)資源耗盡,從而導(dǎo)致多個(gè)系統(tǒng)上的級(jí)聯(lián)故障。

      在本發(fā)明的一個(gè)實(shí)施例中,還包括:將在預(yù)設(shè)周期內(nèi)遠(yuǎn)程調(diào)用斷路器對(duì)應(yīng)的方法的失敗次數(shù)、成功次數(shù)以及調(diào)用失敗的次數(shù)與調(diào)用的總次數(shù)的比值顯示在界面上。

      在遠(yuǎn)程調(diào)用的過(guò)程中,實(shí)時(shí)地將預(yù)設(shè)周期內(nèi)調(diào)用某一個(gè)方法失敗的次數(shù)、成功的次數(shù)以及調(diào)用該方法失敗的次數(shù)與調(diào)用該方法的總次數(shù)的比值顯示在界面上,可供研發(fā)人員查看,能夠更直觀地了解遠(yuǎn)程調(diào)用過(guò)程中調(diào)用某一個(gè)方法的情況。

      在本發(fā)明的另一個(gè)實(shí)施例中,所述步驟s1之前還包括:s0,根據(jù)在預(yù)設(shè)周期內(nèi)遠(yuǎn)程調(diào)用斷路器封裝的方法的失敗次數(shù)或者在界面上顯示的預(yù)設(shè)周期內(nèi)遠(yuǎn)程調(diào)用斷路器封裝的方法失敗的次數(shù)與總次數(shù)的比值,確定向所述jetty服務(wù)器發(fā)送斷路器開閉請(qǐng)求。

      由于在現(xiàn)有技術(shù)中,斷路器打開的條件閾值是在調(diào)用程序啟動(dòng)前配置好的,一旦調(diào)用程序啟動(dòng)后,事先設(shè)置好的條件閾值是無(wú)法更改的。因此,本實(shí)施例在原有的程序中內(nèi)嵌jetty服務(wù)器,在遠(yuǎn)程調(diào)用的過(guò)程中,當(dāng)在界面上顯示的預(yù)設(shè)周期內(nèi)遠(yuǎn)程調(diào)用某個(gè)方法的失敗次數(shù)達(dá)到第二預(yù)設(shè)次數(shù),或者在預(yù)設(shè)周期內(nèi)遠(yuǎn)程調(diào)用某個(gè)方法的失敗次數(shù)與調(diào)用總次數(shù)的比值達(dá)到第二預(yù)設(shè)比值,觸發(fā)外部向jetty服務(wù)器發(fā)送斷路器打開請(qǐng)求,其中,第二預(yù)設(shè)次數(shù)與上述的第一預(yù)設(shè)次數(shù)不相等,同樣的,第二預(yù)設(shè)比值與上述的第一預(yù)設(shè)比值也不相同。jetty服務(wù)器根據(jù)斷路器打開請(qǐng)求中的斷路器標(biāo)識(shí)信息,從hashmap中查找到斷路器的開閉狀態(tài),jetty服務(wù)器根據(jù)外部發(fā)送的斷路器打開請(qǐng)求,將hashmap中的斷路器的開閉狀態(tài)更新為打開狀態(tài),且根據(jù)更新后的斷路器的打開狀態(tài)拒絕后期的遠(yuǎn)程調(diào)用請(qǐng)求。其中,外部向jetty服務(wù)器發(fā)送的斷路器開閉請(qǐng)求為超文本傳輸協(xié)議http(hypertexttransferprotocol)格式的請(qǐng)求。

      本實(shí)施例通過(guò)在原有的程序中內(nèi)嵌jetty服務(wù)器,由jetty服務(wù)器來(lái)接收外部的斷路器開閉請(qǐng)求,對(duì)原有的設(shè)置好的斷斷路器的開閉狀態(tài)進(jìn)行更改,實(shí)現(xiàn)了在調(diào)用程序啟動(dòng)后,能夠靈活的更改斷路器的開閉條件閾值。比如,原有設(shè)置的斷路器打開的條件為在預(yù)設(shè)周期內(nèi)遠(yuǎn)程調(diào)用某個(gè)方法失敗率達(dá)到70%時(shí),才打開斷路器,而在實(shí)際過(guò)程中,失敗率達(dá)到60%,就可以打開斷路器了。由于原有的設(shè)置是在調(diào)用程序啟動(dòng)前設(shè)置的,調(diào)用程序啟動(dòng)后就無(wú)法再更改了,因此,只有斷路器判斷在預(yù)設(shè)周期內(nèi)遠(yuǎn)程調(diào)用某方法的失敗率達(dá)到70%,才會(huì)打開斷路器,這樣會(huì)導(dǎo)致后續(xù)沒有意義的遠(yuǎn)程調(diào)用,浪費(fèi)時(shí)間和資源。而本實(shí)施例中,當(dāng)界面上顯示的預(yù)設(shè)周期內(nèi)遠(yuǎn)程調(diào)用該方法的失敗率達(dá)到了60%,則觸發(fā)外部向斷路器中的jetty服務(wù)器發(fā)送斷路器打開的請(qǐng)求,jetty服務(wù)器根據(jù)斷路器打開的請(qǐng)求,將hashmap中該斷路器原有的開閉狀態(tài)更改為打開狀態(tài),此后,后續(xù)的遠(yuǎn)程調(diào)用該方法的請(qǐng)求皆被拒絕。通過(guò)本實(shí)施例,當(dāng)遠(yuǎn)程調(diào)用程序啟動(dòng)后,能夠?qū)嗦菲鞯拈_閉狀態(tài)進(jìn)行更加靈活的控制。

      另外,在遠(yuǎn)程調(diào)用的過(guò)程中,實(shí)時(shí)監(jiān)控遠(yuǎn)程調(diào)用斷路器封裝的方法的次數(shù),當(dāng)在預(yù)設(shè)時(shí)間內(nèi)遠(yuǎn)程調(diào)用斷路器封裝的方法的次數(shù)下降到第三預(yù)設(shè)次數(shù),向所述jety服務(wù)器發(fā)送斷路器的閉合請(qǐng)求。

      具體的,當(dāng)在一段時(shí)間內(nèi)遠(yuǎn)程調(diào)用某一個(gè)方法的次數(shù)非常多,會(huì)導(dǎo)致系統(tǒng)崩潰,按照原來(lái)的保護(hù)方法,此時(shí)會(huì)將斷路器打開,拒絕后續(xù)的遠(yuǎn)程調(diào)用請(qǐng)求。而導(dǎo)致系統(tǒng)崩潰的原因是在很短的時(shí)間內(nèi)存在過(guò)多的遠(yuǎn)程調(diào)用請(qǐng)求訪問(wèn)量,只要這個(gè)高峰期過(guò)去,系統(tǒng)會(huì)恢復(fù)正常,這時(shí)候一致將斷路器設(shè)置為打開狀態(tài)顯然是不合理的。因此,本實(shí)施例在遠(yuǎn)程調(diào)用的過(guò)程中,會(huì)實(shí)時(shí)的記錄在預(yù)設(shè)周期內(nèi)遠(yuǎn)程調(diào)用一方法的次數(shù),當(dāng)遠(yuǎn)程調(diào)用的次數(shù)下降到第三預(yù)設(shè)次數(shù)時(shí),觸發(fā)外部向jetty服務(wù)器發(fā)送斷路器閉合的請(qǐng)求。jetty服務(wù)器根據(jù)外部發(fā)送的斷路器閉合的請(qǐng)求,將斷路器打開的狀態(tài)更改為閉合的狀態(tài),允許后續(xù)對(duì)該方法遠(yuǎn)程調(diào)用的請(qǐng)求。這種實(shí)時(shí)更新斷路器的打開或關(guān)閉的狀態(tài),能夠及時(shí)地符合實(shí)際情況。

      現(xiàn)有的斷路器的實(shí)現(xiàn)是基于統(tǒng)計(jì)判斷的方式來(lái)決定當(dāng)前方法上的斷路器的開閉狀態(tài)。因此,在遠(yuǎn)程調(diào)用的過(guò)程中,需要在預(yù)設(shè)周期內(nèi)遠(yuǎn)程調(diào)用請(qǐng)求的失敗次數(shù)是否達(dá)到了預(yù)設(shè)次數(shù),只有達(dá)到了預(yù)設(shè)次數(shù),斷路器才會(huì)打開,這會(huì)造成一定程度上的時(shí)延。而在實(shí)際的產(chǎn)生過(guò)程中,要求控制斷路器的時(shí)延,而本發(fā)明實(shí)施例中jetty服務(wù)器根據(jù)外部發(fā)送的斷路器開閉的請(qǐng)求,對(duì)斷路器的當(dāng)前開閉狀態(tài)進(jìn)行更改,實(shí)現(xiàn)了對(duì)斷路器的實(shí)時(shí)更改,時(shí)效性很高。

      參加圖2,為本發(fā)明另一個(gè)實(shí)施例的遠(yuǎn)程調(diào)用裝置,包括斷路器1和內(nèi)嵌的jetty服務(wù)器2,所述jetty服務(wù)器2包括:

      接收模塊21,用于接收外部發(fā)送的斷路器開閉請(qǐng)求,其中,所述斷路器開閉請(qǐng)求中攜帶有斷路器標(biāo)識(shí)信息和所請(qǐng)求的斷路器的開閉狀態(tài)。

      查找模塊22,用于從hashmap中查找得到與所述斷路器標(biāo)識(shí)信息對(duì)應(yīng)的斷路器原有的開閉狀態(tài),其中,hashmap中表征斷路器標(biāo)識(shí)信息和斷路器的開閉狀態(tài)的映射關(guān)系。

      更新模塊23,用于根據(jù)所述斷路器開閉請(qǐng)求所請(qǐng)求的斷路器的開閉狀態(tài),對(duì)從hashmap中查找得到的斷路器原有的開閉狀態(tài)進(jìn)行更新,并根據(jù)更新后的斷路器的開閉狀態(tài)來(lái)允許或拒絕遠(yuǎn)程調(diào)用請(qǐng)求。

      參見圖3,為本發(fā)明另一個(gè)實(shí)施例的遠(yuǎn)程調(diào)用裝置的整體連接框圖,其中的斷路器1用來(lái)封裝對(duì)應(yīng)的方法,斷路器2包括分析模塊11;

      所述分析模塊11,用于對(duì)遠(yuǎn)程調(diào)用斷路器1封裝的方法的調(diào)用狀況進(jìn)行分析來(lái)確定斷路器的開閉狀態(tài),并將斷路器的開閉狀態(tài)存儲(chǔ)于hashmap中。

      所述分析模塊11具體用于統(tǒng)計(jì)在預(yù)設(shè)周期內(nèi)遠(yuǎn)程調(diào)用斷路器1封裝的方法的失敗次數(shù),當(dāng)失敗次數(shù)達(dá)到第一預(yù)設(shè)次數(shù)時(shí),將該方法對(duì)應(yīng)的斷路器1設(shè)置為打開狀態(tài),否則,將所述斷路器1設(shè)置為閉合狀態(tài);或者,統(tǒng)計(jì)預(yù)設(shè)周期內(nèi)遠(yuǎn)程調(diào)用斷路器1封裝的方法的總次數(shù)以及調(diào)用失敗的次數(shù),當(dāng)調(diào)用失敗的次數(shù)與調(diào)用的總次數(shù)的比值達(dá)到第一預(yù)設(shè)比值時(shí),將所述斷路器1設(shè)置為打開狀態(tài),否則,將所述斷路器1設(shè)置為閉合狀態(tài)。

      本實(shí)施例提供的遠(yuǎn)程調(diào)用裝置還包括顯示模塊3,顯示模塊3用于將在預(yù)設(shè)周期內(nèi)遠(yuǎn)程調(diào)用斷路器封裝的方法的失敗次數(shù)、成功次數(shù)以及調(diào)用失敗的次數(shù)與調(diào)用的總次數(shù)的比值顯示在界面上。

      jetty服務(wù)器2中的接收模塊21還用于:接收外部根據(jù)在預(yù)設(shè)周期內(nèi)遠(yuǎn)程調(diào)用斷路器1封裝的方法的失敗次數(shù)向所述jetty服務(wù)器2發(fā)送斷路器開閉請(qǐng)求;或者,接收外部根據(jù)預(yù)設(shè)周期內(nèi)遠(yuǎn)程調(diào)用斷路器1封裝的方法失敗的次數(shù)與總次數(shù)的比值,向所述jetty服務(wù)器2發(fā)送斷路器開閉請(qǐng)求。

      具體的,當(dāng)界面上顯示的預(yù)設(shè)周期內(nèi)遠(yuǎn)程調(diào)用斷路器1封裝的方法失敗的次數(shù)達(dá)到第二預(yù)設(shè)次數(shù)時(shí),觸發(fā)外部向所述jetty服務(wù)器2發(fā)送斷路器打開的請(qǐng)求,其中,所述第二預(yù)設(shè)次數(shù)與所述第一預(yù)設(shè)次數(shù)不相等,此時(shí),jetty服務(wù)器2中的接收模塊21接收外部發(fā)送的斷路器打開的請(qǐng)求?;蛘?,當(dāng)在界面上顯示的預(yù)設(shè)周期內(nèi)遠(yuǎn)程調(diào)用斷路器1封裝的方法失敗的次數(shù)與總次數(shù)的比值達(dá)到第二預(yù)設(shè)比值,觸發(fā)外部向所述jetty服務(wù)器2發(fā)送斷路器打開的請(qǐng)求,其中,所述第二預(yù)設(shè)比值與所述第一預(yù)設(shè)比值不相等,此時(shí),jetty服務(wù)器2中的接收模塊21接收外部發(fā)送的斷路器打開的請(qǐng)求,拒絕后續(xù)的遠(yuǎn)程調(diào)用請(qǐng)求。

      在遠(yuǎn)程調(diào)用的過(guò)程中,實(shí)時(shí)監(jiān)控遠(yuǎn)程調(diào)用斷路器1封裝的方法的次數(shù),當(dāng)在預(yù)設(shè)時(shí)間內(nèi)遠(yuǎn)程調(diào)用斷路器1封裝的方法的次數(shù)下降到第三預(yù)設(shè)次數(shù),觸發(fā)外部向jety服務(wù)器2發(fā)送斷路器的閉合請(qǐng)求,此時(shí),jetty服務(wù)器2中的接收模塊21接收外部發(fā)送的斷路器閉合的請(qǐng)求,允許后續(xù)的遠(yuǎn)程調(diào)用請(qǐng)求。

      基于上述圖2和圖3對(duì)應(yīng)實(shí)施例所提供的遠(yuǎn)程調(diào)用裝置,本發(fā)明提供了還一種遠(yuǎn)程調(diào)用裝置的測(cè)試設(shè)備。參見圖4,該遠(yuǎn)程調(diào)用裝置的測(cè)試設(shè)備包括:處理器(processor)401、存儲(chǔ)器(memory)402、通信接口(communicationsinterface)403和總線404;

      其中,處理器401、存儲(chǔ)器402及通信接口403分別通過(guò)總線404完成相互間的通信;

      通信接口403用于該測(cè)試設(shè)備與遠(yuǎn)程調(diào)用裝置的通信設(shè)備之間的信息傳輸;

      處理器401用于調(diào)用存儲(chǔ)器402中的程序指令,以執(zhí)行上述圖1對(duì)應(yīng)實(shí)施例所提供的遠(yuǎn)程調(diào)用方法,例如包括:內(nèi)嵌jetty服務(wù)器,接收外部發(fā)送的斷路器開閉請(qǐng)求,其中,所述斷路器開閉請(qǐng)求中攜帶有斷路器標(biāo)識(shí)信息和所請(qǐng)求的斷路器的開閉狀態(tài);從hashmap中查找得到與所述斷路器標(biāo)識(shí)信息對(duì)應(yīng)的斷路器原有的開閉狀態(tài),其中,hashmap表征斷路器標(biāo)識(shí)信息和斷路器的開閉狀態(tài)的映射關(guān)系;根據(jù)所述斷路器開閉請(qǐng)求所請(qǐng)求的斷路器的開閉狀態(tài),對(duì)從hashmap中查找得到的斷路器原有的開閉狀態(tài)進(jìn)行更新,并根據(jù)更新后的斷路器的開閉狀態(tài)來(lái)允許或拒絕遠(yuǎn)程調(diào)用請(qǐng)求。

      本發(fā)明公開一種計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)程序產(chǎn)品包括存儲(chǔ)在非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上的計(jì)算機(jī)程序,該計(jì)算機(jī)程序包括程序指令,當(dāng)程序指令被計(jì)算機(jī)執(zhí)行時(shí),計(jì)算機(jī)能夠執(zhí)行上述圖1對(duì)應(yīng)實(shí)施例所提供的遠(yuǎn)程調(diào)用方法,例如包括:內(nèi)嵌jetty服務(wù)器,接收外部發(fā)送的斷路器開閉請(qǐng)求,其中,所述斷路器開閉請(qǐng)求中攜帶有斷路器標(biāo)識(shí)信息和所請(qǐng)求的斷路器的開閉狀態(tài);從hashmap中查找得到與所述斷路器標(biāo)識(shí)信息對(duì)應(yīng)的斷路器原有的開閉狀態(tài),其中,hashmap表征斷路器標(biāo)識(shí)信息和斷路器的開閉狀態(tài)的映射關(guān)系;根據(jù)所述斷路器開閉請(qǐng)求所請(qǐng)求的斷路器的開閉狀態(tài),對(duì)從hashmap中查找得到的斷路器原有的開閉狀態(tài)進(jìn)行更新,并根據(jù)更新后的斷路器的開閉狀態(tài)來(lái)允許或拒絕遠(yuǎn)程調(diào)用請(qǐng)求。

      本發(fā)明提供一種非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),該非暫態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)計(jì)算機(jī)指令,該計(jì)算機(jī)指令使計(jì)算機(jī)執(zhí)行上述圖1對(duì)應(yīng)實(shí)施例所提供的遠(yuǎn)程調(diào)用方法,例如包括:內(nèi)嵌jetty服務(wù)器,接收外部發(fā)送的斷路器開閉請(qǐng)求,其中,所述斷路器開閉請(qǐng)求中攜帶有斷路器標(biāo)識(shí)信息和所請(qǐng)求的斷路器的開閉狀態(tài);從hashmap中查找得到與所述斷路器標(biāo)識(shí)信息對(duì)應(yīng)的斷路器原有的開閉狀態(tài),其中,hashmap表征斷路器標(biāo)識(shí)信息和斷路器的開閉狀態(tài)的映射關(guān)系;根據(jù)所述斷路器開閉請(qǐng)求所請(qǐng)求的斷路器的開閉狀態(tài),對(duì)從hashmap中查找得到的斷路器原有的開閉狀態(tài)進(jìn)行更新,并根據(jù)更新后的斷路器的開閉狀態(tài)來(lái)允許或拒絕遠(yuǎn)程調(diào)用請(qǐng)求。

      本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過(guò)程序指令相關(guān)的硬件來(lái)完成,前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:rom、ram、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。

      以上所描述的遠(yuǎn)程調(diào)用裝置的測(cè)試設(shè)備等實(shí)施例僅僅是示意性的,其中作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動(dòng)的情況下,即可以理解并實(shí)施。

      通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實(shí)施方式可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件?;谶@樣的理解,上述技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如rom/ram、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個(gè)實(shí)施例或者實(shí)施例的某些部分方法。

      本發(fā)明提供的一種遠(yuǎn)程調(diào)用方法及裝置,通過(guò)在原有的程序中內(nèi)嵌jetty服務(wù)器,該jetty服務(wù)器接收外部的斷路器開閉請(qǐng)求,能夠在調(diào)用程序啟動(dòng)后,對(duì)斷路器的開閉狀態(tài)進(jìn)行更新,使斷路器的開閉狀態(tài)更符合實(shí)際情況;引入jetty服務(wù)器,利用jetty服務(wù)器來(lái)實(shí)現(xiàn)對(duì)斷路器的開閉狀態(tài)的更新,不會(huì)影響斷路器本身的運(yùn)行。在遠(yuǎn)程調(diào)用的過(guò)程中,將實(shí)時(shí)調(diào)用失敗的次數(shù)、調(diào)用成功的次數(shù)以及調(diào)用失敗的次數(shù)與調(diào)用總次數(shù)的比值均顯示于界面上,供研發(fā)人員查看,以便研發(fā)人員根據(jù)界面上顯示的數(shù)據(jù),觸發(fā)外部向jetty服務(wù)器發(fā)送斷路器開閉請(qǐng)求,使得jetty服務(wù)器計(jì)時(shí)對(duì)斷路器當(dāng)前的開閉狀態(tài)進(jìn)行更新,實(shí)現(xiàn)了在調(diào)用程序啟動(dòng)后,能夠?qū)崟r(shí)對(duì)斷路器的開閉狀態(tài)進(jìn)行更改,更新斷路器的開閉狀態(tài)的時(shí)效性也非常高。

      最后,本申請(qǐng)的方法僅為較佳的實(shí)施方案,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。

      當(dāng)前第1頁(yè)1 2 
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1