前言
單機(jī)的性能會遇到瓶頸纸泡,這僅僅是從性能來看。即使不從性能來看蔼水,如果一個機(jī)器的性能足夠震糖,那么也會存在單點(diǎn)故障的問題,所以我們需要分布式的高可用趴腋。
一吊说、單臺服務(wù)器應(yīng)用
出現(xiàn)以下問題:
由于流量越來越大出現(xiàn)服務(wù)器性能問題论咏。
二、應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器分離
對架構(gòu)增加了一臺服務(wù)器颁井,應(yīng)用和數(shù)據(jù)庫分別部署到不同的服務(wù)器上厅贪,對于開發(fā)和測試沒有任何影響,只需要應(yīng)用服務(wù)器新增一個遠(yuǎn)程調(diào)用數(shù)據(jù)庫服務(wù)器的連接雅宾,有效的緩解了應(yīng)用服務(wù)器負(fù)載的壓力养涮。
出現(xiàn)以下問題:
隨著請求流量得進(jìn)一步增大出現(xiàn)應(yīng)用服務(wù)器性能問題。
三眉抬、應(yīng)用服務(wù)器集群
流量請求得到緩解贯吓。
應(yīng)用服務(wù)器集群后出現(xiàn)以下問題:
1.需要使用session+cookie維護(hù)用戶
2.如何做請求轉(zhuǎn)發(fā)(cdn,前端做負(fù)載均衡器)
四蜀变、負(fù)載均衡器
1.負(fù)載均衡器優(yōu)化了訪問請求在服務(wù)器組之間的分配悄谐,消除了服務(wù)器之間的負(fù)載不平衡,從而提高了系統(tǒng)的反應(yīng)速度與總體性能昏苏;
2.負(fù)載均衡器可以對服務(wù)器的運(yùn)行狀況進(jìn)行監(jiān)控尊沸,及時(shí)發(fā)現(xiàn)運(yùn)行異常的服務(wù)器,并將訪問請求轉(zhuǎn)移到其它可以正常工作的服務(wù)器上贤惯,從而提高服務(wù)器組的可靠性采用了負(fù)均衡器器以后洼专,可以根據(jù)業(yè)務(wù)量的發(fā)展情況靈活增加服務(wù)器,系統(tǒng)的擴(kuò)展能力得到提高孵构,同時(shí)簡化了管理屁商。
負(fù)載均衡器之后出現(xiàn)以下問題:
隨著流量的新增,數(shù)據(jù)庫服務(wù)器有性能壓力颈墅,數(shù)據(jù)庫遇到瓶頸蜡镶。
五、數(shù)據(jù)庫服務(wù)器集群
數(shù)據(jù)庫服務(wù)器集群后出現(xiàn)以下問題:
1.數(shù)據(jù)庫讀寫分離
2.數(shù)據(jù)庫數(shù)據(jù)同步
3.數(shù)據(jù)庫路由
六恤筛、搜索引擎集群
搜索引擎集群后出現(xiàn)以下問題:
1.搜索引擎的索引數(shù)據(jù)如何同步官还,實(shí)時(shí)增量or定時(shí)全量?
七毒坛、緩存服務(wù)器
用戶量是沒有上限的
緩存望伦、 限流、 降級
注:架構(gòu)到了第七版還不能算分布式架構(gòu)煎殷,只能說是由多臺服務(wù)器組成的高可用的架構(gòu)
八屯伞、數(shù)據(jù)庫水平/垂直拆分
目前將數(shù)據(jù)庫進(jìn)行垂直拆分,還未進(jìn)行數(shù)據(jù)庫水平拆分(比如將訂單表分庫分表就屬于水平拆分)
九豪直、應(yīng)用服務(wù)器垂直拆分
以淘寶為例劣摇。根據(jù)不同域名請求訪問不同服務(wù)器,如果涉及到用戶需要查詢商品或訂單弓乙,直接在用戶服務(wù)器里寫DAO層查詢商品或訂單數(shù)據(jù)庫表末融。
產(chǎn)生問題:應(yīng)用服務(wù)器交互調(diào)用問題钧惧。
在此我向大家推薦一個架構(gòu)學(xué)習(xí)交流群。交流學(xué)習(xí)群號:478030634 里面會分享一些資深架構(gòu)師錄制的視頻錄像:有Spring滑潘,MyBatis垢乙,Netty源碼分析,高并發(fā)语卤、高性能、分布式酪刀、微服務(wù)架構(gòu)的原理粹舵,JVM性能優(yōu)化、分布式架構(gòu)等這些成為架構(gòu)師必備的知識體系骂倘。還能領(lǐng)取免費(fèi)的學(xué)習(xí)資源眼滤,目前受益良多
十、SOA服務(wù)(分布式架構(gòu))
最后第十版就不是web應(yīng)用服務(wù)了历涝,應(yīng)用服務(wù)拆分為服務(wù)節(jié)點(diǎn)诅需,屬于微服務(wù)了。