優(yōu)惠活動(dòng) - 12周年慶本月新客福利
優(yōu)惠活動(dòng) - 12周年慶本月新客福利
優(yōu)惠活動(dòng) - 12周年慶本月新客福利

拆分不同的東西(Y軸原則)

有時(shí)該原則被稱(chēng)為通過(guò)服務(wù)或資源進(jìn)行擴展,重點(diǎn)是擴展數據集合、事務(wù)和程序員小組。非常大的數據集合,數據間關(guān)系并不重要口大型的復雜系統,需要特別擴展編程資源。
 
用動(dòng)詞拆分操作,用名詞拆分資源,或者兼而有之口根據動(dòng)詞/名詞方法的定義,拆分服務(wù)和數據。不僅能有效地擴展事務(wù),還能有效地擴展與事務(wù)相關(guān)的大型數據集合。Y軸拆分,或者說(shuō)面向數據服務(wù)的拆分,能夠有效地擴展事務(wù)、大型數據集合,并且有助于故障隔離。

拋開(kāi)關(guān)于面向服務(wù)的架構(SOA)和面向資源的架構(ROA)這兩個(gè)概念的爭論,深入了解它們的基本前提就會(huì )發(fā)現,它們至少有一點(diǎn)是相同的,即都要求架構師和程序員考慮架構中的職責拆分。大體上就是采用動(dòng)詞(服務(wù))和名詞(資源)的概念來(lái)實(shí)現拆分。即擴展立方上的第二個(gè)軸,采用的就是這種方法。簡(jiǎn)而言之,是通過(guò)拆分站點(diǎn)中的各種功能和數據,從而實(shí)現擴展。采用簡(jiǎn)單方法就是把產(chǎn)品拆分為名詞和動(dòng)詞,或者兩者的組合。



首先,我們看看怎么用動(dòng)詞拆分站點(diǎn)。如果我們的站點(diǎn)是相對簡(jiǎn)單的電子商務(wù)站點(diǎn),那么可以用動(dòng)詞把它拆分為注冊、登錄、搜索、瀏覽、查看、加入購物車(chē)、購買(mǎi)。在這些事務(wù)中,每一個(gè)事務(wù)所需要執行的數據可能都與其他事務(wù)需要的大不相同。例如,可能有人會(huì )說(shuō),注冊和登錄需要的數據是相同的,但其實(shí)它們都需要一些特有的數據。例如,注冊可能需要檢查該用戶(hù)選擇的ID是不是已經(jīng)被別人選用了,而登錄時(shí)則無(wú)需了解其他用戶(hù)的ID。注冊時(shí)可能需要把大量的數據寫(xiě)入持久數據存儲中,而登錄則是一種驗證用戶(hù)身份的只讀應用。注冊可能需要用戶(hù)存儲許多識別個(gè)人身份的信息,包括信用卡號等,而在用戶(hù)只是想建立登錄連接時(shí)則無(wú)需訪(fǎng)問(wèn)這些信息。

在研究搜索和登錄這兩種截然不同功能時(shí),依據動(dòng)詞拆分的擴展方法的不同之處以及帶來(lái)的好處就更加明顯了。在登錄時(shí),我們關(guān)心的通常是驗證用戶(hù)身份,可能會(huì )建立某些會(huì )話(huà)(這里我們采用術(shù)語(yǔ)會(huì )話(huà),而不是采用狀態(tài))。登錄功能關(guān)心的是用戶(hù),因此需要緩存用戶(hù)數據并與之進(jìn)行交互操作。另一方面,搜索關(guān)心的是查找數據項,而最重要的是用戶(hù)的意圖(通常是用戶(hù)在搜索框內輸入的搜索字符串、查詢(xún)或搜索項)以及我們存儲在目錄中的目錄項。拆分這些數據集,可以使我們在系統有限的內存中緩存更多的數據,而且,由此產(chǎn)生的高緩存命中率也會(huì )加快事務(wù)的處理。在后端的持久性系統(如數據庫)中標分數據,就能夠在這些系統中分配更多的專(zhuān)用內存,加速對客戶(hù)(應用服務(wù)器)請求的響應。由于更好地利用了系統資源,這兩個(gè)系統都會(huì )相應地更快。顯然,這是拓展這些系統最容易的方法,受內存限制地更少。此外,通過(guò)采用X軸擴展)相同的方法拆分事務(wù),Y軸的事務(wù)擴展能力也增加了。

稍等!如果我們想把用戶(hù)和產(chǎn)品信息合并在一起,例如向客戶(hù)推薦產(chǎn)品,又該怎么辦呢?注意,這里用了新的動(dòng)詞一一推薦。這是另一種需要拆分數據和事務(wù)的情況。我們可能會(huì )加入一種推薦服務(wù),根據用戶(hù)過(guò)去的購買(mǎi)行為,與具有相似購買(mǎi)行為的用戶(hù)進(jìn)行異步評估。這樣可能會(huì )把數據移植到登錄功能或搜索功能(當用戶(hù)與系統交互時(shí)就會(huì )向他顯示)?;蛘咭部赡苁怯脩?hù)瀏覽器發(fā)出的一個(gè)單獨的同步調用,顯示在專(zhuān)門(mén)分配給這個(gè)推薦調用的區域。
 
現在可以考慮如何用名詞來(lái)拆分項了。還是拿電子商務(wù)的例子來(lái)說(shuō),我們可以標識一些最終會(huì )對其進(jìn)行操作的資源(而不是表示要執行的操作的動(dòng)詞)。我們可以認為電子商務(wù)站點(diǎn)是由產(chǎn)品目錄、產(chǎn)品庫存清單、用戶(hù)賬戶(hù)信息、市場(chǎng)營(yíng)銷(xiāo)信息等構成的。采用名詞拆分的方法,可以根據這些分類(lèi)拆分數據,然后定義一套高級的原函數,如創(chuàng )建、讀、更新和刪除等,對這些原數據進(jìn)行操作。

Y軸拆分不僅適用于擴展數據集合,還適用于擴展代碼庫。由于服務(wù)和資源都被拆分了,那么執行的操作和執行它們所必需的代碼也會(huì )被拆分。這就意味著(zhù)可以把開(kāi)發(fā)復雜系統的大型編程小組拆分成各個(gè)子系統的專(zhuān)家組,程序員不用再擔心自己必須是網(wǎng)站建設系統每一部分的全能專(zhuān)家了。當然,由于可以拆分服務(wù),所以擴展事務(wù)也就相當容易了。

本文地址:http://havencoinwallet.com//article/3454.html
相關(guān)文章:
最新文章:
国产免费丝袜调教视频爱剪辑|国产小受18asian|国产福利91精品一区二区三区|久久久青草大香|欧美丰满熟妇xxxx性