涉及到很多第三方接口,那必然會出現一些技術難題。
1.耦合性:
(1)如果第三方接口如果性能出現抖動,那必然會導致我們核心流程的性能變差。(異步解耦)
(2)如果第三方接口突然升級了,比如說原來只需要5個入參,現在需要6個入參了,那我們本地系統的多個接口也需要跟着第三方接口的升級而升級,必須配合他的新接口進行測試和部署上線,圍着它轉。(在接口文檔中可以看到有很多新老版接口的說明,第三方接口升級是不可避免的事情)
2.原子性問題:如果第三方接口調用失敗,會導致我們核心鏈路出現部分失敗問題(分佈式事務)
3.數據量過大問題:公司產品有3億的用戶量,每個用戶如果要用我們的產品,都需要進行身份證、銀行卡、人臉識別等信息的驗證,算起來上十億的數據量該如何存儲也是我們應該考慮的問題?分庫分表?hadoop、hbase?公司的老闆或者運營團隊,每天都需要查看我們的數據報表吧?如果在有上億數據量的db中運行我們幾百行的大SQL,性能是極低的,更重要的是,會大大消耗我們數據庫服務器的CPU、磁盤IO、內存,會拖垮我們的業務程序的運行,所以我們的大數據團隊才應運而生
4.穩定性:公司內部的系統,所有代碼都在自己公司,你知道如何運行,出現bug的時候可以自己去解決和優化。但是對於第三方接口,我們連他是什麼語言寫的都不知道,更不知道他是如何實現的,更沒有改動代碼的權力。我們的第三方系統,隨時可能奔潰或出現bug,導致說我們去調用它的時候會失敗,那麼我們就需要考慮如何重試了