五星云站用戶業(yè)務(wù)數(shù)據(jù)均由獨(dú)立DB服務(wù)器存儲
1.程序開發(fā)中,可能存在如下限制:
(1)服務(wù)必須是松耦合的,這樣才能夠獨(dú)立地開發(fā)、部署和擴(kuò)展這些微服務(wù)。
(2)必須保持某些跨多個(gè)服務(wù)的業(yè)務(wù)事務(wù)的不變性。例如,下訂單用例必須驗(yàn)證新訂單不會超出用戶信用額度限制。某些業(yè)務(wù)事務(wù)必須更新由多個(gè)服務(wù)擁有的數(shù)據(jù)。
(3)某些業(yè)務(wù)事務(wù)需要查詢由不同服務(wù)擁有的數(shù)據(jù)。
(4)某些查詢必須關(guān)聯(lián)由多個(gè)服務(wù)擁有的數(shù)據(jù)。
(5)有時(shí)候?yàn)榱藬U(kuò)展,數(shù)據(jù)庫必須可以被復(fù)制和共享。 (
6)不同服務(wù)有不同的數(shù)據(jù)存儲要求。對于某些服務(wù),關(guān)系型數(shù)據(jù)庫是最好的選擇。其它服務(wù)可能需要NoSQL數(shù)據(jù)庫比如MongoDB(擅長存儲復(fù)雜、非結(jié)構(gòu)化數(shù)據(jù))。
2.五星云站中,大多數(shù)的服務(wù)都需要持久化數(shù)據(jù)到某些數(shù)據(jù)庫中,比如用戶業(yè)務(wù)信息。 這樣:
(1)有利于確保服務(wù)是松耦合的,某個(gè)服務(wù)的數(shù)據(jù)庫發(fā)生改變不影響其它服務(wù)。
(2)也能保證每個(gè)服務(wù)能夠使用最合適它們需求的數(shù)據(jù)庫類型。