System.ArgumentOutOfRangeException: 索引和長(zhǎng)度必須引用該字符串內(nèi)的位置。 參數(shù)名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術(shù)實(shí)現(xiàn)步驟摘要】
本申請(qǐng)涉及分布式,特別是涉及一種配置更新方法、裝置、計(jì)算機(jī)設(shè)備、計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)和計(jì)算機(jī)程序產(chǎn)品。
技術(shù)介紹
1、目前,用戶操作ingress資源時(shí),無(wú)論是修改配置文件nginx.conf里的規(guī)則配置,還是刪除或者是創(chuàng)建新的ingress資源,都會(huì)觸發(fā)ingress?controller里nginx的重新加載操作。其中,頻繁的重載會(huì)消耗更多的cpu和內(nèi)存資源,特別是在處理大量連接或復(fù)雜配置時(shí)。這可能會(huì)影響nginx的性能,從而影響整個(gè)集群的穩(wěn)定性。
技術(shù)實(shí)現(xiàn)思路
1、基于此,有必要針對(duì)上述技術(shù)問(wèn)題,提供一種能夠減少資源損耗的配置熱更新方法、裝置、計(jì)算機(jī)設(shè)備、計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)和計(jì)算機(jī)程序產(chǎn)品。
2、第一方面,本申請(qǐng)?zhí)峁┝艘环N配置熱更新方法,包括:
3、在監(jiān)聽(tīng)到ingress資源發(fā)生變化的情況下,查詢發(fā)生ingress資源變化的服務(wù)相應(yīng)的注解標(biāo)識(shí);
4、在服務(wù)對(duì)應(yīng)有提前設(shè)置的注解標(biāo)識(shí)的情況下,確定服務(wù)在本次ingress資源發(fā)生變化時(shí)的時(shí)刻與在上次ingress資源發(fā)生變化時(shí)的時(shí)刻之間的時(shí)間間隔;
5、在時(shí)間間隔小于預(yù)設(shè)時(shí)間間隔的情況下,獲取服務(wù)對(duì)應(yīng)提前設(shè)置的重載時(shí)延,在等待重載時(shí)延相應(yīng)的時(shí)長(zhǎng)后,執(zhí)行相應(yīng)的配置熱更新處理。
6、在其中一個(gè)實(shí)施例中,該方法還包括:
7、響應(yīng)于針對(duì)ingress資源配置界面的設(shè)置操作,提前為服務(wù)配置注解標(biāo)識(shí)和重載時(shí)延。
8、在其中一個(gè)實(shí)施例中,該方法還包括:
10、在本次獲得的服務(wù)節(jié)點(diǎn)數(shù)據(jù)與本地在前存儲(chǔ)的服務(wù)節(jié)點(diǎn)數(shù)據(jù)之間存在差異的情況下,基于本次獲得的服務(wù)節(jié)點(diǎn)數(shù)據(jù),更新本地存儲(chǔ)的服務(wù)節(jié)點(diǎn)數(shù)據(jù)。
11、在其中一個(gè)實(shí)施例中,執(zhí)行相應(yīng)的配置熱更新處理,包括:
12、獲取本次ingress資源所發(fā)生的變化相應(yīng)的熱更新事件,并開(kāi)始累計(jì)延時(shí)時(shí)長(zhǎng);
13、在累計(jì)得到的延時(shí)時(shí)長(zhǎng)不小于最大延時(shí)時(shí)長(zhǎng)的情況下,將累計(jì)得到的延時(shí)時(shí)長(zhǎng)相應(yīng)的時(shí)段內(nèi)所產(chǎn)生的熱更新事件進(jìn)行整合,得到整合事件;
14、基于整合事件,執(zhí)行相應(yīng)的配置熱更新處理。
15、在其中一個(gè)實(shí)施例中,該方法還包括:
16、在累計(jì)延時(shí)時(shí)長(zhǎng)的過(guò)程中,在持續(xù)沒(méi)有產(chǎn)生新的熱更新事件的情況下,獲取持續(xù)沒(méi)有產(chǎn)生新的熱更新事件相應(yīng)的已靜默時(shí)長(zhǎng);
17、在已靜默時(shí)長(zhǎng)不小于最小靜默時(shí)長(zhǎng)的情況下,將累計(jì)得到的延時(shí)時(shí)長(zhǎng)相應(yīng)的時(shí)段內(nèi)所產(chǎn)生的熱更新事件進(jìn)行整合,得到整合事件;
18、基于整合事件,執(zhí)行相應(yīng)的配置熱更新處理。
19、在其中一個(gè)實(shí)施例中,該方法還包括:
20、在開(kāi)始累計(jì)延時(shí)時(shí)長(zhǎng)之后累積的熱更新事件的總數(shù)量達(dá)到預(yù)設(shè)數(shù)量、累計(jì)得到的延時(shí)時(shí)長(zhǎng)小于最大延時(shí)時(shí)長(zhǎng)、且已靜默時(shí)長(zhǎng)小于最小靜默時(shí)長(zhǎng)的情況下,將最小靜默時(shí)長(zhǎng)與已靜默時(shí)長(zhǎng)之間的差值,更新為累計(jì)得到的延時(shí)時(shí)長(zhǎng)。
21、第二方面,本申請(qǐng)還提供了一種配置熱更新裝置,包括:
22、查詢模塊,用于在監(jiān)聽(tīng)到ingress資源發(fā)生變化的情況下,查詢發(fā)生ingress資源變化的服務(wù)相應(yīng)的注解標(biāo)識(shí);
23、確定模塊,用于在服務(wù)對(duì)應(yīng)有提前設(shè)置的注解標(biāo)識(shí)的情況下,確定服務(wù)在本次ingress資源發(fā)生變化時(shí)的時(shí)刻與在上次ingress資源發(fā)生變化時(shí)的時(shí)刻之間的時(shí)間間隔;
24、執(zhí)行模塊,用于在時(shí)間間隔小于預(yù)設(shè)時(shí)間間隔的情況下,獲取服務(wù)對(duì)應(yīng)提前設(shè)置的重載時(shí)延,在等待重載時(shí)延相應(yīng)的時(shí)長(zhǎng)后,執(zhí)行相應(yīng)的配置熱更新處理。
25、第三方面,本申請(qǐng)還提供了一種計(jì)算機(jī)設(shè)備,包括存儲(chǔ)器和處理器,存儲(chǔ)器存儲(chǔ)有計(jì)算機(jī)程序,處理器執(zhí)行計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)以下步驟:
26、在監(jiān)聽(tīng)到ingress資源發(fā)生變化的情況下,查詢發(fā)生ingress資源變化的服務(wù)相應(yīng)的注解標(biāo)識(shí);
27、在服務(wù)對(duì)應(yīng)有提前設(shè)置的注解標(biāo)識(shí)的情況下,確定服務(wù)在本次ingress資源發(fā)生變化時(shí)的時(shí)刻與在上次ingress資源發(fā)生變化時(shí)的時(shí)刻之間的時(shí)間間隔;
28、在時(shí)間間隔小于預(yù)設(shè)時(shí)間間隔的情況下,獲取服務(wù)對(duì)應(yīng)提前設(shè)置的重載時(shí)延,在等待重載時(shí)延相應(yīng)的時(shí)長(zhǎng)后,執(zhí)行相應(yīng)的配置熱更新處理。
29、第四方面,本申請(qǐng)還提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)以下步驟:
30、在監(jiān)聽(tīng)到ingress資源發(fā)生變化的情況下,查詢發(fā)生ingress資源變化的服務(wù)相應(yīng)的注解標(biāo)識(shí);
31、在服務(wù)對(duì)應(yīng)有提前設(shè)置的注解標(biāo)識(shí)的情況下,確定服務(wù)在本次ingress資源發(fā)生變化時(shí)的時(shí)刻與在上次ingress資源發(fā)生變化時(shí)的時(shí)刻之間的時(shí)間間隔;
32、在時(shí)間間隔小于預(yù)設(shè)時(shí)間間隔的情況下,獲取服務(wù)對(duì)應(yīng)提前設(shè)置的重載時(shí)延,在等待重載時(shí)延相應(yīng)的時(shí)長(zhǎng)后,執(zhí)行相應(yīng)的配置熱更新處理。
33、第五方面,本申請(qǐng)還提供了一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,該計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)以下步驟:
34、在監(jiān)聽(tīng)到ingress資源發(fā)生變化的情況下,查詢發(fā)生ingress資源變化的服務(wù)相應(yīng)的注解標(biāo)識(shí);
35、在服務(wù)對(duì)應(yīng)有提前設(shè)置的注解標(biāo)識(shí)的情況下,確定服務(wù)在本次ingress資源發(fā)生變化時(shí)的時(shí)刻與在上次ingress資源發(fā)生變化時(shí)的時(shí)刻之間的時(shí)間間隔;
36、在時(shí)間間隔小于預(yù)設(shè)時(shí)間間隔的情況下,獲取服務(wù)對(duì)應(yīng)提前設(shè)置的重載時(shí)延,在等待重載時(shí)延相應(yīng)的時(shí)長(zhǎng)后,執(zhí)行相應(yīng)的配置熱更新處理。
37、上述配置熱更新方法、裝置、計(jì)算機(jī)設(shè)備、計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)和計(jì)算機(jī)程序產(chǎn)品,在監(jiān)聽(tīng)到ingress資源發(fā)生變化的情況下,可以不直接執(zhí)行相應(yīng)的配置熱更新處理。而是先判斷發(fā)生ingress資源變化的服務(wù)是否被提前設(shè)置有注解標(biāo)識(shí),在被提前設(shè)置有注解標(biāo)識(shí)的情況下,可以進(jìn)一步獲取近兩次ingress資源發(fā)生變化的時(shí)間間隔。如果時(shí)間間隔小于預(yù)設(shè)時(shí)間間隔,則說(shuō)明該服務(wù)近兩次ingress資源發(fā)生變化的時(shí)間間隔較短。由此,可以等待提前為該服務(wù)配置的重載時(shí)延相應(yīng)的時(shí)長(zhǎng),再執(zhí)行相應(yīng)的配置熱更新處理。由于可以將nginx?ingress?controller的配置文件變更與自動(dòng)重載解耦,保留動(dòng)態(tài)修改配置邏輯,增加等待重載時(shí)延相應(yīng)的時(shí)長(zhǎng)后的觸發(fā)邏輯,從而可以減少頻繁熱更新帶來(lái)的資源損耗,提升nginx的性能,并提高網(wǎng)關(guān)路由流量以至于整個(gè)集群的穩(wěn)定性。
本文檔來(lái)自技高網(wǎng)...【技術(shù)保護(hù)點(diǎn)】
1.一種配置熱更新方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述執(zhí)行相應(yīng)的配置熱更新處理,包括:
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述方法還包括:
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述方法還包括:
7.一種配置熱更新裝置,其特征在于,所述裝置包括:
8.一種計(jì)算機(jī)設(shè)備,包括存儲(chǔ)器和處理器,所述存儲(chǔ)器存儲(chǔ)有計(jì)算機(jī)程序,其特征在于,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)權(quán)利要求1至6中任一項(xiàng)所述的方法的步驟。
9.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,其特征在于,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)權(quán)利要求1至6中任一項(xiàng)所述的方法的步驟。
10.一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,其特征在于,該計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)權(quán)利要求1至6中任一項(xiàng)所述的方法的步驟。
【技術(shù)特征摘要】
1.一種配置熱更新方法,其特征在于,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括:
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述執(zhí)行相應(yīng)的配置熱更新處理,包括:
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述方法還包括:
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述方法還包括:
7.一種配置熱更新裝置,其特征...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:蔣偉,
申請(qǐng)(專利權(quán))人:天翼云科技有限公司,
類型:發(fā)明
國(guó)別省市:
還沒(méi)有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。