大型網站系統架構

dubbo+ssh+nginx負載均衡/動靜分離+數據庫主從+緩存+分佈式存儲+隊列nginx

一、緩存--利用緩存改善網站性能
a.緩存包含本地緩存和分佈式緩存;本地緩存如OSCache,分佈式緩存如Memcached、Redis。redis

b.本地緩存和分佈式緩存的特色
本地緩存的特色是速度快,可是本地空間有限因此緩存數據量也有限。
分佈式緩存的特色是,能夠緩存海量的數據,而且擴展很是容易,響應速度沒有本地緩存快。數據庫

二、服務器集羣--使用服務器集羣改善應用服務器性能
應用服務器做爲網站的入口,會承擔大量的請求,咱們每每經過應用服務器集羣來分擔請求數。應用服務器前面部署負載均衡服務器調度用戶請求,根據分發策略將請求分發到多個應用服務器節點。緩存

經常使用的負載均衡技術硬件的有F5,軟件的有LVS、Nginx、HAProxy。
F5:價格比較貴;
LVS:四層負載均衡,根據目標地址和端口選擇內部服務器
Nginx:七層負載均衡
HAProxy:支持四層、七層負載均衡,能夠根據報文內容選擇內部服務器安全

所以LVS分發路徑優於Nginx和HAProxy,性能要高些,而Nginx和HAProxy則更具配置性,如能夠用來作動靜分離(根據請求報文特徵,選擇靜態資源服務器仍是應用服務器)。服務器

三、數據庫讀寫分離和分庫分表
隨着用戶量的增長,數據庫成爲最大的瓶頸,改善數據庫性能經常使用的手段是進行讀寫分離以及分表。
讀寫分離顧名思義就是將數據庫分爲讀庫和寫庫,經過主備功能實現數據同步。
分庫分表則分爲水平切分和垂直切分,水平切換則是對一個數據庫特大的表進行拆分,例如用戶表。垂直切分則是根據業務不一樣來切換,如用戶業務、商品業務相關的表放在不一樣的數據庫中。架構

四、CDN、反向代理--使用CDN和反向代理(nginx)提升網站性能負載均衡

五、使用分佈式文件系統框架

六、SOA服務化(dubbo)--將應用服務器進行業務拆分運維

 

技術
Web容器用Tomcat,框架主要是Spring MVC,中間服務層是Dubbo,服務註冊是用ZooKeeper,核心業務開發方式是Spring和Mybatis等;數據的存儲是MySQL,數據的緩存是本地緩存和redis,消息和實時計算是Kafka, Storm,日誌以及監控系統則是用典型的ELK和Zabbix。

架構基礎設施是一塊,而後中間是服務,上面是平常的應用。基礎設施就包括典型的存儲、消息、框架,還有發佈、運維、監控等等。中間就是如今典型的SOA服務,用戶的資產、服務、流水、交易等等,全部的服務採用Spring Boot打包部署,主要便於運維上的統一和方便作一些切面層的事情。最上面是應用,包括社區、記賬、錢管家、理財。而安全和風控會切入在每個環節。

相關文章
相關標籤/搜索