
在此淺談自己對分布式的一點理解吧!
在我自己目前寫代碼用的最多的還是單機結構,自己用來測試還可以,但是想讓網站發展起來,讓更多的用戶來登陸這個網站,單機結構是絕對hold不住地,有人想到了集群,集群即將同一個業務,部署在多個服務器上。可以說和單機結構相比有了一定的提升,而且用起來也很方便,用戶多了就加服務器,把代碼copy一下,增加幾個節點,但是這樣到后來的提升是不明顯的,也是對資源的不合理利用。為了讓服務器的性能最優化,我們引入了分布式結構,也就是說將一個業務分拆多個子業務,部署在不同的服務器上,分布式固然好,但是想要利用分布式結構就不能再copy之前單機結構或集群的代碼了,在一開始寫這個項目的時候就要進行微服務化處理,將它拆分成多個獨立的服務,每個服務都是一個單獨的工程,就拿上圖的商城來說吧,我們最先將他們分為管理系統和用戶購物,根據用戶量和管理員數量合理分配服務器。簡單來說就是讓服務器有針對性的工作,根據需求合理分配服務器數量,提高效率!
使用分布式的一些好處:
- 系統之間的耦合度大大降低,可以獨立開發、獨立部署、獨立測試,系統與系統之間的邊界非常明確,排錯也變得相當容易,開發效率大大提升。
- 系統之間的耦合度降低,從而系統更易於擴展。我們可以針對性地擴展某些服務。假設這個商城要搞一次大促,下單量可能會大大提升,因此我們可以針對性地提升訂單系統、產品系統的節點數量,而對於后台管理系統、數據分析系統而言,節點數量維持原有水平即可。
- 服務的復用性更高。比如,當我們將用戶系統作為單獨的服務后,該公司所有的產品都可以使用該系統作為用戶系統,無需重復開發。
下面是網上盜的一個很生動形象的圖片

