本發(fā)明專利技術(shù)公開了一種調(diào)用請(qǐng)求的處理方法和裝置,涉及計(jì)算機(jī)技術(shù)領(lǐng)域。該方法的具體實(shí)施方式包括:接收調(diào)用請(qǐng)求;根據(jù)請(qǐng)求參數(shù)和預(yù)生成的服務(wù)模板,生成與調(diào)用請(qǐng)求對(duì)應(yīng)的目標(biāo)worker服務(wù);根據(jù)服務(wù)參數(shù)中的接口參數(shù),確定目標(biāo)worker服務(wù)的服務(wù)接口,并將服務(wù)參數(shù)中除接口參數(shù)以外的其他服務(wù)參數(shù),通過服務(wù)接口發(fā)送給目標(biāo)worker服務(wù)對(duì)應(yīng)的服務(wù)器,以使服務(wù)器對(duì)調(diào)用請(qǐng)求進(jìn)行處理;接收服務(wù)器通過服務(wù)接口返回的處理結(jié)果。該實(shí)施方式能夠適應(yīng)各種復(fù)雜多變的服務(wù)環(huán)境,滿足各種調(diào)用請(qǐng)求的處理目標(biāo)、極易操作、無需頻繁發(fā)布,在提升編排效率的同時(shí),可以降低開發(fā)和維護(hù)成本,保證服務(wù)的穩(wěn)定性。定性。定性。
【技術(shù)實(shí)現(xiàn)步驟摘要】
一種調(diào)用請(qǐng)求的處理方法和裝置
[0001]本專利技術(shù)涉及計(jì)算機(jī)
,尤其涉及一種調(diào)用請(qǐng)求的處理方法和裝置。
技術(shù)介紹
[0002]隨著計(jì)算機(jī)技術(shù)的快速發(fā)展,各個(gè)應(yīng)用的功能不斷擴(kuò)增,相應(yīng)的應(yīng)用邏輯越來越復(fù)雜,為了防止應(yīng)用功能的開發(fā)、維護(hù)、測試等工作復(fù)雜度過高導(dǎo)致的成本、頻繁出錯(cuò)問題,通常選擇將應(yīng)用功能拆分為多個(gè)小粒度的服務(wù),通過微服務(wù)編排以實(shí)現(xiàn)應(yīng)用邏輯。
[0003]作為典型的服務(wù)編排框架,Netflix Conductor可以實(shí)現(xiàn)基于worker的任務(wù)開發(fā),將worker內(nèi)的不同的節(jié)點(diǎn)編排成有向無環(huán)圖的工作流,以實(shí)現(xiàn)對(duì)應(yīng)的任務(wù)功能,使得任務(wù)對(duì)應(yīng)的邏輯有序執(zhí)行。比如,任務(wù)為http請(qǐng)求。
[0004]現(xiàn)有的http請(qǐng)求處理中,通常是針對(duì)每一個(gè)http請(qǐng)求,自定義一個(gè)worker接口類,編寫任務(wù)邏輯進(jìn)行測試,測試成功后注冊(cè)并發(fā)布。然而,由于不同請(qǐng)求的接口url、請(qǐng)求參數(shù)等各不相同,http請(qǐng)求對(duì)應(yīng)變更頻繁,面對(duì)巨大的請(qǐng)求量,需要頻繁變更worker定義、測試、重新上線等,使得對(duì)應(yīng)的開發(fā)和維護(hù)成本過高、效率低下,影響請(qǐng)求服務(wù)的穩(wěn)定性。
技術(shù)實(shí)現(xiàn)思路
[0005]有鑒于此,本專利技術(shù)實(shí)施例提供一種調(diào)用請(qǐng)求的處理方法和裝置,能夠適應(yīng)各種復(fù)雜多變的服務(wù)環(huán)境,滿足各種調(diào)用請(qǐng)求的處理目標(biāo)、極易操作、無需頻繁發(fā)布,在提升編排效率的同時(shí),可以降低開發(fā)和維護(hù)成本,保證服務(wù)的穩(wěn)定性。
[0006]為實(shí)現(xiàn)上述目的,根據(jù)本專利技術(shù)實(shí)施例的一個(gè)方面,提供了一種調(diào)用請(qǐng)求的處理的方法,包括:
[0007]接收調(diào)用請(qǐng)求;其中,所述調(diào)用請(qǐng)求指示了請(qǐng)求參數(shù);
[0008]根據(jù)所述請(qǐng)求參數(shù)和預(yù)生成的服務(wù)模板,生成與所述調(diào)用請(qǐng)求對(duì)應(yīng)的目標(biāo)worker服務(wù);其中,所述目標(biāo)worker服務(wù)指示了一個(gè)或多個(gè)服務(wù)參數(shù),所述服務(wù)模板是根據(jù)多個(gè)歷史調(diào)用請(qǐng)求分別對(duì)應(yīng)的worker服務(wù)聚合生成的;
[0009]根據(jù)所述服務(wù)參數(shù)中的接口參數(shù),確定所述目標(biāo)worker服務(wù)的服務(wù)接口,并將所述服務(wù)參數(shù)中除所述接口參數(shù)以外的其他服務(wù)參數(shù),通過所述服務(wù)接口發(fā)送給所述目標(biāo)worker服務(wù)對(duì)應(yīng)的服務(wù)器,以使所述服務(wù)器對(duì)所述調(diào)用請(qǐng)求進(jìn)行處理;
[0010]接收所述服務(wù)器通過所述服務(wù)接口返回的處理結(jié)果。
[0011]可選地,所述根據(jù)所述請(qǐng)求參數(shù)和預(yù)生成的服務(wù)模板,生成與所述調(diào)用請(qǐng)求對(duì)應(yīng)的目標(biāo)worker服務(wù),包括:
[0012]根據(jù)所述服務(wù)模板所需的模板參數(shù),從所述請(qǐng)求參數(shù)中確定與所述模板參數(shù)對(duì)應(yīng)的目標(biāo)請(qǐng)求參數(shù),并將所述目標(biāo)請(qǐng)求參數(shù)填充至所述服務(wù)模板中,以生成所述服務(wù)模板對(duì)應(yīng)的服務(wù)參數(shù);
[0013]根據(jù)填充后的所述服務(wù)模板中的服務(wù)參數(shù)、以及除所述目標(biāo)請(qǐng)求參數(shù)以外的其他請(qǐng)求參數(shù),生成所述目標(biāo)worker服務(wù)。
[0014]可選地,還包括:
[0015]獲取多個(gè)歷史調(diào)用請(qǐng)求;其中,所述歷史調(diào)用請(qǐng)求指示了包括歷史請(qǐng)求參數(shù)和歷史請(qǐng)求函數(shù)的worker服務(wù);
[0016]分別對(duì)所述歷史請(qǐng)求參數(shù)和所述歷史請(qǐng)求函數(shù)進(jìn)行聚合,確定所述服務(wù)模板的模板參數(shù)和模板函數(shù);
[0017]根據(jù)所述模板參數(shù)和所述模板函數(shù),生成所述worker服務(wù)對(duì)應(yīng)的服務(wù)模板。
[0018]可選地,所述模板參數(shù)包括必選參數(shù),還包括:
[0019]確定所述請(qǐng)求參數(shù)是否包括與所述必選參數(shù)對(duì)應(yīng)的目標(biāo)請(qǐng)求參數(shù);
[0020]在所述請(qǐng)求參數(shù)不包括與所述必選參數(shù)對(duì)應(yīng)的目標(biāo)請(qǐng)求參數(shù)的情況下,拒絕所述調(diào)用請(qǐng)求。
[0021]可選地,所述服務(wù)參數(shù)包括url;所述將所述服務(wù)參數(shù)中除所述接口參數(shù)以外的其他服務(wù)參數(shù),通過所述服務(wù)接口發(fā)送給所述目標(biāo)worker服務(wù)對(duì)應(yīng)的服務(wù)器,包括:
[0022]確定所述目標(biāo)worker服務(wù)的目的地址是否為空;
[0023]在所述url為空的情況下,將所述其他服務(wù)參數(shù)通過默認(rèn)網(wǎng)關(guān)發(fā)送給所述服務(wù)接口,以通過所述服務(wù)接口將所述其他服務(wù)參數(shù)發(fā)送給所述服務(wù)器;
[0024]在所述url不為空的請(qǐng)求下,利用所述url映射至所述服務(wù)接口,將所述其他服務(wù)參數(shù)發(fā)送給所述服務(wù)接口,以通過所述服務(wù)接口將所述其他服務(wù)參數(shù)發(fā)送給所述服務(wù)器。
[0025]可選地,還包括:
[0026]根據(jù)所述處理結(jié)果,更新所述目標(biāo)worker服務(wù)的執(zhí)行狀態(tài);
[0027]在所述處理結(jié)果為成功的情況下,將所述處理結(jié)果對(duì)應(yīng)的處理數(shù)據(jù)寫入所述輸出日志,并更新所述執(zhí)行狀態(tài)為執(zhí)行成功;
[0028]在所述處理結(jié)果為失敗的情況下,將所述處理結(jié)果寫入輸出日志,并更新所述執(zhí)行狀態(tài)為執(zhí)行失敗。
[0029]可選地,其中:
[0030]在所述調(diào)用請(qǐng)求為http請(qǐng)求的情況下,所述http請(qǐng)求包括以下任意一種:GET請(qǐng)求、POST請(qǐng)求、PUT請(qǐng)求、DELETE請(qǐng)求、HEAD請(qǐng)求、OPTIONS請(qǐng)求、TRACE請(qǐng)求、CONNECT請(qǐng)求。
[0031]根據(jù)本專利技術(shù)實(shí)施例的再一個(gè)方面,提供了一種調(diào)用請(qǐng)求的處理裝置,包括:
[0032]接收模塊,用于接收調(diào)用請(qǐng)求;其中,所述調(diào)用請(qǐng)求指示了請(qǐng)求參數(shù);
[0033]生成模塊,用于根據(jù)所述請(qǐng)求參數(shù)和預(yù)生成的服務(wù)模板,生成與所述調(diào)用請(qǐng)求對(duì)應(yīng)的目標(biāo)worker服務(wù);其中,所述目標(biāo)worker服務(wù)指示了一個(gè)或多個(gè)服務(wù)參數(shù),所述服務(wù)模板是根據(jù)多個(gè)歷史調(diào)用請(qǐng)求分別對(duì)應(yīng)的worker服務(wù)聚合生成的;
[0034]服務(wù)接口確定模塊,用于根據(jù)所述服務(wù)參數(shù)中的接口參數(shù),確定所述目標(biāo)worker服務(wù)的服務(wù)接口,并將所述服務(wù)參數(shù)中除所述接口參數(shù)以外的其他服務(wù)參數(shù),通過所述服務(wù)接口發(fā)送給所述目標(biāo)worker服務(wù)對(duì)應(yīng)的服務(wù)器,以使所述服務(wù)器對(duì)所述調(diào)用請(qǐng)求進(jìn)行處理;
[0035]接收模塊,還用于接收所述服務(wù)器通過所述服務(wù)接口返回的處理結(jié)果。
[0036]根據(jù)本專利技術(shù)實(shí)施例的另一個(gè)方面,提供了一種調(diào)用請(qǐng)求的處理電子設(shè)備,包括:
[0037]一個(gè)或多個(gè)處理器;
[0038]存儲(chǔ)裝置,用于存儲(chǔ)一個(gè)或多個(gè)程序,
[0039]當(dāng)所述一個(gè)或多個(gè)程序被所述一個(gè)或多個(gè)處理器執(zhí)行,使得所述一個(gè)或多個(gè)處理器實(shí)現(xiàn)本專利技術(shù)提供的調(diào)用請(qǐng)求的處理方法。
[0040]根據(jù)本專利技術(shù)實(shí)施例的還一個(gè)方面,提供了一種計(jì)算機(jī)可讀介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,所述程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)本專利技術(shù)提供的調(diào)用請(qǐng)求的處理方法。
[0041]上述專利技術(shù)中的一個(gè)實(shí)施例具有如下優(yōu)點(diǎn)或有益效果:因?yàn)椴捎梅治鰵v史調(diào)用請(qǐng)求,對(duì)歷史請(qǐng)求參數(shù)和歷史請(qǐng)求函數(shù)進(jìn)行聚合,生成與調(diào)用請(qǐng)求對(duì)應(yīng)的worker服務(wù)的服務(wù)模板,從而在處理新的調(diào)用請(qǐng)求時(shí),根據(jù)請(qǐng)求參數(shù)填充服務(wù)模板,以生成目標(biāo)worker服務(wù),從而處理對(duì)應(yīng)的調(diào)用請(qǐng)求的技術(shù)手段,所以克服了現(xiàn)有的調(diào)用請(qǐng)求變更頻繁、需要反復(fù)測試、重復(fù)上線等,使得對(duì)應(yīng)的開發(fā)和維護(hù)成本過高、效率低下,影響請(qǐng)求服務(wù)的穩(wěn)定性的技術(shù)問題,進(jìn)而達(dá)到能夠適應(yīng)各種復(fù)雜多變的服務(wù)環(huán)境,滿足各種調(diào)用請(qǐng)求的處理目標(biāo)、極易操作、無需頻繁發(fā)布,在提升編排效率的同時(shí),可以降低開發(fā)和維護(hù)成本,本文檔來自技高網(wǎng)...
【技術(shù)保護(hù)點(diǎn)】
【技術(shù)特征摘要】
1.一種調(diào)用請(qǐng)求的處理方法,其特征在于,包括:接收調(diào)用請(qǐng)求;其中,所述調(diào)用請(qǐng)求指示了請(qǐng)求參數(shù);根據(jù)所述請(qǐng)求參數(shù)和預(yù)生成的服務(wù)模板,生成與所述調(diào)用請(qǐng)求對(duì)應(yīng)的目標(biāo)worker服務(wù);其中,所述目標(biāo)worker服務(wù)指示了一個(gè)或多個(gè)服務(wù)參數(shù),所述服務(wù)模板是根據(jù)多個(gè)歷史調(diào)用請(qǐng)求分別對(duì)應(yīng)的worker服務(wù)聚合生成的;根據(jù)所述服務(wù)參數(shù)中的接口參數(shù),確定所述目標(biāo)worker服務(wù)的服務(wù)接口,并將所述服務(wù)參數(shù)中除所述接口參數(shù)以外的其他服務(wù)參數(shù),通過所述服務(wù)接口發(fā)送給所述目標(biāo)worker服務(wù)對(duì)應(yīng)的服務(wù)器,以使所述服務(wù)器對(duì)所述調(diào)用請(qǐng)求進(jìn)行處理;接收所述服務(wù)器通過所述服務(wù)接口返回的處理結(jié)果。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述請(qǐng)求參數(shù)和預(yù)生成的服務(wù)模板,生成與所述調(diào)用請(qǐng)求對(duì)應(yīng)的目標(biāo)worker服務(wù),包括:根據(jù)所述服務(wù)模板所需的模板參數(shù),從所述請(qǐng)求參數(shù)中確定與所述模板參數(shù)對(duì)應(yīng)的目標(biāo)請(qǐng)求參數(shù),并將所述目標(biāo)請(qǐng)求參數(shù)填充至所述服務(wù)模板中,以生成所述服務(wù)模板對(duì)應(yīng)的服務(wù)參數(shù);根據(jù)填充后的所述服務(wù)模板中的服務(wù)參數(shù)、以及除所述目標(biāo)請(qǐng)求參數(shù)以外的其他請(qǐng)求參數(shù),生成所述目標(biāo)worker服務(wù)。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,還包括:獲取多個(gè)歷史調(diào)用請(qǐng)求;其中,所述歷史調(diào)用請(qǐng)求指示了包括歷史請(qǐng)求參數(shù)和歷史請(qǐng)求函數(shù)的worker服務(wù);分別對(duì)所述歷史請(qǐng)求參數(shù)和所述歷史請(qǐng)求函數(shù)進(jìn)行聚合,確定所述服務(wù)模板的模板參數(shù)和模板函數(shù);根據(jù)所述模板參數(shù)和所述模板函數(shù),生成所述worker服務(wù)對(duì)應(yīng)的服務(wù)模板。4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述模板參數(shù)包括必選參數(shù),還包括:確定所述請(qǐng)求參數(shù)是否包括與所述必選參數(shù)對(duì)應(yīng)的目標(biāo)請(qǐng)求參數(shù);在所述請(qǐng)求參數(shù)不包括與所述必選參數(shù)對(duì)應(yīng)的目標(biāo)請(qǐng)求參數(shù)的情況下,拒絕所述調(diào)用請(qǐng)求。5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述服務(wù)參數(shù)包括url;所述將所述服務(wù)參數(shù)中除所述接口參數(shù)以外的其他服務(wù)參數(shù),通過所述服務(wù)接口發(fā)送給所述目標(biāo)worker服務(wù)對(duì)應(yīng)的服務(wù)器,包括:確定所述目標(biāo)worker服務(wù)的目的地址是否為空;在所述url為空的情況下,將所述其他服務(wù)參數(shù)通過默認(rèn)網(wǎng)關(guān)發(fā)送給所述服務(wù)接口...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:袁帥明,
申請(qǐng)(專利權(quán))人:北京京東世紀(jì)貿(mào)易有限公司,
類型:發(fā)明
國別省市:
還沒有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。