分布式系統

2021-08-08 10:45:17 字數 1139 閱讀 5414

分布式,一來就直接看書,除非你有比較深厚的技術功底,要不還是很晦澀難懂的。

先想想為什麼會有分布式,分布式怎麼來的

傳統的電信、銀行業,當業務量大了之後,普通伺服器cpu/io/網路到了100%,請求太慢怎麼辦?最直接的做法,公升級硬體,反正也不缺錢,ibm小型機,大型機,採購了堆硬體。

但是網際網路不能這麼幹,網際網路沒有那麼財大氣粗,還有很多初創,能不能賺錢還不知道。所以就有了軟體方面的解決方案:分布式系統,簡單說,就是一台伺服器不行,我用兩台、10臺、100臺…這就要軟體系統需要支援。那麼軟體設計者就需要考慮了,那麼多台機器,我如何讓他們協同工作,這就需要乙個排程中心(或註冊中心);肯定涉及到機器間通訊,那麼需要乙個高效的rpc框架;乙個請求過來了,如何分發,需要乙個請求分發系統(負載均衡);然後還要考慮每個角色都不能成為效能瓶頸;還有要能方便的進行橫向擴充套件,還有考慮單節點故障。

這些事你在設計分布式系統需要考慮的問題。筆者現在在網際網路行業,說的都是網際網路業的方案。比如現在負載均衡用nginx/ha,前者更輕量,後者負載均衡演算法更豐富;rpc框架用dubbo(可用噹噹的dubbox);用zookeeper中註冊中心,所有服務註冊在這裡。

需要分布式系統,併發量肯定不低,那麼有了上面的還是不夠的還需要考慮cache、mq、job、db等方面的問題cache,現在第三方快取也比較成熟,redis/memcache等;

mq,rabbitmq,kafka等等也不錯;

job,現在第三方任務框架有elasticjob和tbschedule,或用quartz也支援分布式環境下的任務,不過quartz沒有運維工具。

db,資料庫最好在專案前期就考慮好業務拆分,系統拆分後db對應的垂直拆分,

後期可做讀寫分離,一主多從,甚至多主多從,業界也有了相應的解決方案。

總結一下,

樓主要自己了解分布式原理,

然後對應著每個功能區找業界內成熟的產品來實時。

網際網路行業,基本都有開源的產品供你選擇。

分布式系統

分布式系統和計算機網路系統的共同點是 多數分布式系統是建立在計算機網路之上的,所以分布式系統與計算機網路在物理結構上是基本相同的。他們的區別在於 分布式作業系統的設計思想和網路作業系統是不同的,這決定了他們在結構 工作方式和功能上也不同。網路作業系統要求網路使用者在使用網路資源時首先必須了解網路資源...

分布式系統

zookeeper讓服務配置變得更簡單 zookeeper是hadoop下的乙個子專案,它是乙個針對大型分布式系統的可靠的協調系統,提供的功能包括 配置維護 名字服務 分布式同步 組服務等。zookeeper是可以集群複製的,集群間通過zab zookeeper atomic broadcast 協...

分布式系統

集中式 集中式只有乙個伺服器或者多個伺服器 只能有乙個機架 組成乙個整體 處理所有的業務 分布式系統是由硬體和軟體組分布在不同的網路計算機中 ip網段可能不一樣 彼此之間僅僅通過訊息傳遞 協調整個系統服務 分布式系統與概念設計 缺點 節點故障 計算程式是分布式的,如果乙個maptask掛了會導致hd...