如何作好系統之間的交互

咱們在開發企業應用的時候,不少時候須要用到第三方系統,或者須要和第三方系統交互。那麼,這時候如何保障交互的成功率,作好這種類型的交互系統?框架

業務流程清晰,業務狀態明確異步

首先,和第三方系統的交互,最爲重要的是交互的成功率、效率、數據完整性和可追溯。那麼,這時候在開發以前,須要把業務邏輯明確清楚,流程有幾步,每一步的狀態是什麼,失敗怎麼處理,能夠怎麼樣跳轉等等,每一個業務系統都不同,須要梳理清晰。線程

分層明確,邊界清晰接口

在代碼層面上,第三方系統提供的接口,本身系統應該在抽象一層,這一層開始會是和第三方交互的真正入口,不能把第三方接口散落到本身程序的各個地方。
若是是HTTP提供的接口,那麼本身要封裝好通訊層。
這樣提升系統的可維護性。圖片

清晰的LOG開發

log必不可少,這是追查問題的主要手段。在前面分層清晰的前提下,添加log,準確輔助定位到出問題的地方。
是通訊出了問題,仍是第三方系統出現業務問題,仍是本身的系統出現問題,須要能在第一時間肯定。效率

數據完整性圖片存儲

不少時候,雖然依賴第三方系統,可是原始的業務數據本身要存儲一份。好比,程序利用七牛的圖片存儲,可是本身的業務系統依然要存儲圖片的字節內容。這樣才能把主動掌握在本身的程序手中,出了問題纔不會乾瞪眼。
程序開發,須要嚴密的邏輯,不能靠幸運。線程池

異步調用程序

異步調用,也就是說和本身的業務邏輯分離開。這樣,可以最大程度上減小對第三方系統的依賴,即便對方系統宕機,本身的業務系統依然可以正常運轉,只是會不斷累積須要對方須要處理的業務數據。

重試次數

從本身的業務出發,和對方約定重試的次數,儘可能保持業務成功完成。重試,可以總體提高業務的成功率。
異步調用和重試能夠由Spring的線程池框架完成。

完善的報警機制

經過上面的措施,在必定程度上保障業務的成功率。更爲關鍵的是,若是是重要的業務系統,要根據上面的log和業務數據完善報警機制,更加積極的發現錯誤和進行人工干預。

相關文章
相關標籤/搜索