介面呼叫超時解決方法

2021-09-14 06:05:48 字數 699 閱讀 9643

1.增加超時時間

假設a系統有個方法methoda,會呼叫b系統的methodb這個http介面,如果mehoda不追求超快的響應速度,那麼你在呼叫methodb這個http介面時,可以增長超時時間,例如10秒超時。因為經常在某些時刻,由於網路原因或者系統原因,呼叫method會超時的。

2.嘗試多呼叫一次

如果第一次呼叫methodb超時了,那麼你可以嘗試多呼叫一次。當然前提是,methoda不追求超快的響應時間。注意:呼叫多次不代表重複呼叫 製造髒資料

3.使用待處理佇列

如果methoda需要很快的響應速度,那麼當呼叫methodb介面超時時,可以使用乙個佇列儲存本次失敗的記錄,然後使用乙個job每隔一段時間去掃這個佇列,看看是否有待處理的資料。 

備註:如果對方系統掛掉了,使用待處理佇列的方式,比較合適。

4.回滾資料

catch這個超時異常,然後記錄日誌後,丟擲這個異常,並把之前的資料回滾。讓對方的系統重新呼叫。 

備註:寧願沒有資料,也不要儲存髒資料。

5.使用非同步機制

如果你的業務方法中,需要呼叫對方的http介面,如果這個http介面不影響主流程的,那麼可以使用乙個執行緒,非同步呼叫對方的http介面,並把超時時間設定長一些。由於使用了非同步,主流程會立刻繼續走的。

6.使用快取機制

使用一台快取伺服器,每次呼叫先呼叫我們的快取伺服器裡面的資料,來實現快速呼叫解決超時問題。

mysql 連線超時解決方法

jdbc開發時候遇到mysql連線超時,斷開服務的問題。經過查資料,找到問題解決方法,總結如下。問題原因 由於mysql服務在長時間不連線之後斷開了,斷開之後的首次請求會丟擲這個異常。既然是連線超時的問題,就要去mysql中 一下連線時間是怎麼 控制的。開啟mysql的控制台,執行 show var...

SSH連線超時解決方法

原理均為定時傳送 空包 方法1.修改server端的etc ssh sshd config,然後重啟ssh服務 service sshd restart server每隔60秒傳送一次請求給client,然後client響應,從而保持連線 clientaliveinterval 60 server發...

Linux Vsftpd 連線超時解決方法

2013 11 13 10 58 34 分類 預設分類 舉報 字型大小訂閱 解決方法 在服務端配置被動模式就可以從根源上解決這問題。1 編輯 vsftpd 配置檔案 vi etc vsftpd vsftpd.conf 複製 2 在最下面新增以下資訊 pasv enable yes 開啟被動模式 pa...