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