本發明專利技術涉及服務調用方法及裝置。該方法包括:在接收到調用服務的請求的情況下,獲取所述服務的可用性參數;在所述可用性參數為可用的情況下,調用所述服務,并獲取所述服務的響應結果;在所述可用性參數為不可用的情況下,執行備選操作。通過在接收到調用服務的請求的情況下,獲取該服務的可用性參數,在可用性參數為可用的情況下,則調用該服務,并獲取該服務的響應結果,在可用性參數為不可用的情況下,執行備選操作,根據本發明專利技術的服務調用方法及裝置能夠在服務出現異常時,降低分布式應用系統對該服務的依賴性,從而能夠提高分布式應用系統的穩定性和可靠性。
【技術實現步驟摘要】
本專利技術涉及計算機軟件
,尤其涉及一種服務調用方法及裝置。
技術介紹
分布式應用(DistributedApplication)指的是應用程序分布在不同計算機上,通過網絡來共同完成一項任務的工作方式。在分布式應用系統中,為了降低耦合性和維護成本,同時為了方便不同部門之間的協同工作,通常拆分為多個具有單一功能的服務。例如,對于大型的互聯網分布式應用,通常拆分為負載均衡、前端、后臺、緩存、數據庫和第三方服務等多個服務。不同的服務通常會部署在不同機房的多臺服務器上,服務之間通過共享數據庫和RPC(RemoteProcessCall,遠程過程調用)等方式進行通信。當分布式應用系統依賴的服務出現異常時,例如服務無法正常響應時,會影響分布式應用系統的性能和穩定性,甚至導致整個分布式應用系統出現異常,從而造成較大損失。綜上,現有的分布式應用系統的穩定性和可靠性依賴于內部及外部服務的穩定性和可靠性,當分布式應用系統依賴的服務出現異常時,對分布式應用系統的服務質量影響較大,甚至會導致分布式應用系統不可用。
技術實現思路
技術問題有鑒于此,本專利技術要解決的技術問題是,現有的分布式應用系統的穩定性和可靠性較低。解決方案為了解決上述技術問題,根據本專利技術的一實施例,提供了一種服務調用方法,包括:在接收到調用服務的請求的情況下,獲取所述服務的可用性參數;在所述可用性參數為可用的情況下,調用所述服務,并獲取所述服務的響應結果;在所述可用性參數為不可用的情況下,執行備選操作。對于上述方法,在一種可能的實現方式中,在所述可用性參數為不可用的情況下,執行備選操作,包括:在所述可用性參數為不可用的情況下,判斷所述請求是否需要對所述服務進行探測;若判定需要對所述服務進行探測,則調用所述服務,并獲取所述服務的響應結果;若判定不需要對所述服務進行探測,則調用所述服務的備選數據和/或備選邏輯。對于上述方法,在一種可能的實現方式中,判斷所述請求是否需要對所述服務進行探測,包括:根據預先設定的探測流量比例設置第一區間,并根據所述探測流量比例在所述第一區間中設定第四預設值;為所述請求在所述第一區間中生成隨機數,若所述隨機數與第四預設值相同,則判定需要對所述服務進行探測,否則判定不需要對所述服務進行探測。對于上述方法,在一種可能的實現方式中,在獲取所述服務的響應結果之后,所述方法還包括:將所述服務對應的調用總次數加1;若所述服務的響應結果為異常,則將所述服務對應的調用失敗次數加1;在當前系統時間與所述服務的檢測時間戳之間的時間間隔大于或等于第一預設值,且所述調用總次數大于或等于第二預設值的情況下,根據所述調用失敗次數更新所述可用性參數。對于上述方法,在一種可能的實現方式中,根據所述調用失敗次數更新所述可用性參數,包括:在所述調用失敗次數與所述調用總次數的比值大于或等于第三預設值的情況下,將所述可用性參數更新為不可用;在所述調用失敗次數與所述調用總次數的比值小于所述第三預設值的情況下,將所述可用性參數更新為可用。對于上述方法,在一種可能的實現方式中,在根據所述調用失敗次數更新所述可用性參數之后,所述方法還包括:將所述檢測時間戳更新為所述當前系統時間,并將所述調用總次數和所述調用失敗次數清零。對于上述方法,在一種可能的實現方式中,在獲取所述服務的響應結果之后,所述方法還包括:若所述服務的響應結果為正常,則將所述服務的最新調用狀態更新為正常狀態,否則將所述最新調用狀態更新為異常狀態。為了解決上述技術問題,根據本專利技術的另一實施例,提供了一種服務調用裝置,包括:可用性參數獲取模塊,用于在接收到調用服務的請求的情況下,獲取所述服務的可用性參數;服務調用模塊,用于在所述可用性參數為可用的情況下,調用所述服務,并獲取所述服務的響應結果;備選操作執行模塊,用于在所述可用性參數為不可用的情況下,執行備選操作。對于上述裝置,在一種可能的實現方式中,所述備選操作執行模塊包括:探測判斷子模塊,用于在所述可用性參數為不可用的情況下,判斷所述請求是否需要對所述服務進行探測;服務調用子模塊,用于若判定需要對所述服務進行探測,則調用所述服務,并獲取所述服務的響應結果;備選調用子模塊,用于若判定不需要對所述服務進行探測,則調用所述服務的備選數據和/或備選邏輯。對于上述裝置,在一種可能的實現方式中,所述探測判斷子模塊具體用于:在所述可用性參數為不可用的情況下,根據預先設定的探測流量比例設置第一區間,并根據所述探測流量比例在所述第一區間中設定第四預設值;為所述請求在所述第一區間中生成隨機數,若所述隨機數與第四預設值相同,則判定需要對所述服務進行探測,否則判定不需要對所述服務進行探測。對于上述裝置,在一種可能的實現方式中,所述裝置還包括:調用總次數累加模塊,用于將所述服務對應的調用總次數加1;調用失敗次數累加模塊,用于若所述服務的響應結果為異常,則將所述服務對應的調用失敗次數加1;可用性參數更新模塊,用于在當前系統時間與所述服務的檢測時間戳之間的時間間隔大于或等于第一預設值,且所述調用總次數大于或等于第二預設值的情況下,根據所述調用失敗次數更新所述可用性參數。對于上述裝置,在一種可能的實現方式中,所述可用性參數更新模塊包括:第一可用性參數更新子模塊,用于在所述調用失敗次數與所述調用總次數的比值大于或等于第三預設值的情況下,將所述可用性參數更新為不可用;第二可用性參數更新子模塊,用于在所述調用失敗次數與所述調用總次數的比值小于所述第三預設值的情況下,將所述可用性參數更新為可用。對于上述裝置,在一種可能的實現方式中,所述裝置還包括:清零模塊,用于將所述檢測時間戳更新為所述當前系統時間,并將所述調用總次數和所述調用失敗次數清零。對于上述裝置,在一種可能的實現方式中,所述裝置還包括:最新調用狀態更新模塊,用于若所述服務的響應結果為正常,則將所述服務的最新調用狀態更新為正常狀態,否則將所述最新調用狀態更新為異常狀態。有益效果通過在接收到調用服務的請求的情況下,獲取該服務的可用性參數,在可用性參數為可用的情況下,則調用該服務,并獲取該服務的響應結果,在可用性參數為不可用的情況下,執行備選操作,根據本專利技術實施例的服務調用方法及裝置能夠在服務出現異常時,降低分布式應用系統對該服務的依賴性,從而能夠提高分布式應用系統的穩定性和可靠性。根據下面參考附圖對示例性實施例的詳細說明,本專利技術的其它特征及方面將變得清楚。附圖說明包含在說明書中并且構成說明書的一部分的附圖與說明書一起示出了本專利技術的示例性實施例、特征和方面,并且用于解釋本專利技術的原理。圖1示出根據本專利技術一實施例的服務調用方法的實現流程圖;圖2示出根據本專利技術一實施例的服務調用方法步驟S103的一示例性的具體實現流程圖;圖3示出根據本專利技術一實施例的服務調用方法步驟S201中判斷該請求是否需要對該服務進行探測的一示例性的具體實現流程圖;圖4示出根據本專利技術一實施例的服務調用方法的一示例性的實現流程圖;圖5示出根據本專利技術一實施例的服務調用方法的另一示例性的實現流程圖;圖6示出根據本專利技術一實施例的服務調用方法的另一示例性的實現流程圖;圖7示出根據本專利技術一實施例的服務調用方法的另一示例性的實現流程圖;圖8示出根據本專利技術另一實施例的服務調用裝置的結構框圖;圖9示本文檔來自技高網...

【技術保護點】
一種服務調用方法,其特征在于,包括:在接收到調用服務的請求的情況下,獲取所述服務的可用性參數;在所述可用性參數為可用的情況下,調用所述服務,并獲取所述服務的響應結果;在所述可用性參數為不可用的情況下,執行備選操作。
【技術特征摘要】
1.一種服務調用方法,其特征在于,包括:在接收到調用服務的請求的情況下,獲取所述服務的可用性參數;在所述可用性參數為可用的情況下,調用所述服務,并獲取所述服務的響應結果;在所述可用性參數為不可用的情況下,執行備選操作。2.根據權利要求1所述的方法,其特征在于,在所述可用性參數為不可用的情況下,執行備選操作,包括:在所述可用性參數為不可用的情況下,判斷所述請求是否需要對所述服務進行探測;若判定需要對所述服務進行探測,則調用所述服務,并獲取所述服務的響應結果;若判定不需要對所述服務進行探測,則調用所述服務的備選數據和/或備選邏輯。3.根據權利要求2所述的方法,其特征在于,判斷所述請求是否需要對所述服務進行探測,包括:根據預先設定的探測流量比例設置第一區間,并根據所述探測流量比例在所述第一區間中設定第四預設值;為所述請求在所述第一區間中生成隨機數,若所述隨機數與第四預設值相同,則判定需要對所述服務進行探測,否則判定不需要對所述服務進行探測。4.根據權利要求1至3任意一項所述的方法,其特征在于,在獲取所述服務的響應結果之后,所述方法還包括:將所述服務對應的調用總次數加1;若所述服務的響應結果為異常,則將所述服務對應的調用失敗次數加1;在當前系統時間與所述服務的檢測時間戳之間的時間間隔大于或等于第一預設值,且所述調用總次數大于或等于第二預設值的情況下,根據所述調用失敗次數更新所述可用性參數。5.根據權利要求4所述的方法,其特征在于,根據所述調用失敗次數更新所述可用性參數,包括:在所述調用失敗次數與所述調用總次數的比值大于或等于第三預設值的情況下,將所述可用性參數更新為不可用;在所述調用失敗次數與所述調用總次數的比值小于所述第三預設值的情況下,將所述可用性參數更新為可用。6.根據權利要求4所述的方法,其特征在于,在根據所述調用失敗次數更新所述可用性參數之后,所述方法還包括:將所述檢測時間戳更新為所述當前系統時間,并將所述調用總次數和所述調用失敗次數清零。7.根據權利要求1至3任意一項所述的方法,其特征在于,在獲取所述服務的響應結果之后,所述方法還包括:若所述服務的響應結果為正常,則將所述服務的最新調用狀態更新為正常狀態,否則將所述最新調用狀態更新為異常狀態。8.一種服務調用裝置,其特征在于,包括:可用性參數獲取模塊,用于在接收到調用服務的請求的情...
【專利技術屬性】
技術研發人員:吳航,蓋炳帥,單明輝,尹玉宗,姚鍵,潘柏宇,王冀,
申請(專利權)人:合一智能科技深圳有限公司,
類型:發明
國別省市:廣東;44
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。