摘要:一規避系統間依賴任何外部系統都是不可靠的假設你要做的是系統,某個數據需要到系統去查。四時刻為外部異常做好準備多系統間系統調用是無法保證數據一致性的。如果是外部系統調用在數據入口處就做好記錄,做一個狀態機,當你執行成功后將狀態更改為成功。
一 規避系統間依賴
任何外部系統都是不可靠的
假設你要做的是A系統,某個數據需要到B系統去查。考慮到:
自己系統是有qps指標要求的
其它系統都是不可靠的
那么,是不是必須一定要到B系統呢?能不能做一份數據冗余呢?將B系統中數據同步到自己系統,這樣,不管B系統怎么樣,自己系統都不會有問題了。
二 盡量是作為依賴提供方作為上游,而不是下游。寧可影響到別人,而不要被別人所影響
如果實在無法避免系統間依賴,那也盡量是做為上游的服務提供方,而非做下游的服務調用方。上游接口錯了,會污染到下游,寧可做污染的人,也不要被別人所污染。
非自己業務范疇一概不做。
老數據,老產品能不做盡量不做。
四 時刻為外部異常做好準備多系統間系統調用是無法保證數據一致性的。無論是外系統調用你還是你調用外系統,如果外系統調用你,如果你失敗了,那么他的數據無法保證一致;同理,如果是你調用外系統,那么他的系統失敗了,你的數據就有問題了。
如果是外部系統調用
在數據入口處就做好記錄,做一個狀態機,當你執行成功后將狀態更改為成功。同時,外部系統也應該做一個數據反查或者數據推送接口,查詢數據是否成功,或者由我們這邊推送狀態。
如果是調用外部接口
如果是本系統調用外部接口,特別是外部系統變更,比如涉及到插入或者修改(查詢不算),那么是不是需要要求外部系統成功后做一個推送?或者自己這邊做一個查詢,來輪詢接口的調用情況。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/11926.html
摘要:在世界級的安卓測試開發流第一部分,作者開始了安卓測試開發流的討論。這個測試用例的測試對象是,部分指令集僅涉及執行的指令和。測試的粒度則應當和測試范圍相當。一旦我們能夠測試產品需求是否正確實現,我們必須繼續測試開發流。 在「世界級的安卓測試開發流?—?第一部分」,作者開始了安卓測試開發流的討論。我們探討了一個軟件工程師開始編寫測試,到發現測試開發中的相關問題的不斷變化。 最后,得到了以下...
摘要:一返回值調用外部方法獲取的值需要對類型做判斷,因為我們對方法返回的值是有期望值類型,但是卻不能保證這個接口返回的值一直是同一個類型。 19年目標:消滅英語!我新開了一個公眾號記錄一個程序員學英語的歷程 有提升英語訴求的小伙伴可以關注公眾號:csenglish 程序員學英語,每天花10分鐘交作業,跟我一起學英語吧 javascript作為一門動態類型語言,具有很高的動態靈活性,當定義函數...
閱讀 987·2021-11-24 10:30
閱讀 2316·2021-10-08 10:04
閱讀 3949·2021-09-30 09:47
閱讀 1433·2021-09-29 09:45
閱讀 1435·2021-09-24 10:33
閱讀 6234·2021-09-22 15:57
閱讀 2351·2021-09-22 15:50
閱讀 4079·2021-08-30 09:45