日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

承载千万级并发的分布式系统架构设计思想

發布時間:2025/3/21 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 承载千万级并发的分布式系统架构设计思想 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
摘要: 1、服務器集群、負載均衡 毫無疑問,程序寫得再好,只能最大利用一臺服務器的性能,讓單臺服務器能夠支持更多的人訪問請求。但別忘了,單臺服務器性能再高也是有限的,帶寬也是有限的,要想支撐更多的并發量,只能采用多服務器集群方式,每臺服務器支撐一定數量的并發,這就是負載均衡概念。

看了很多文章,都是關注微觀細節上優化,而我喜歡從大的往小的說。


1、服務器集群、負載均衡

???? 毫無疑問,程序寫得再好,只能最大利用一臺服務器的性能,讓單臺服務器能夠支持更多的人訪問請求。但別忘了,單臺服務器性能再高也是有限的,

帶寬也是有限的,要想支撐更多的并發量,只能采用多服務器集群方式,每臺服務器支撐一定數量的并發,這就是負載均衡概念。

??? 負載均衡分為硬件負載均衡(如F5、dns負載均衡)和軟件負載均衡(如Nginx/LVS/HAProxy),硬件級負載均衡轉發到的必須是具有外部ip的服務器,而這臺服務器又是一臺軟件負載均衡服務器,轉發給內部局域網的多臺服務器,最終接入web系統。

??? 一般來說,一臺搭建有Nginx/LVS/HAProxy 的軟件負載均衡服務器,支撐的并發數在5萬以內(理論最高值),正常在一半(2.5萬)左右,要考慮并發量在千萬級,那就需要400臺以上的具有外部ip的軟件負載均衡服務器。


2、web網站集群、緩存集群、session集群

???? 每一臺最終用戶接入的服務器都部署完全一樣的web服務,這些web程序雖然可以統一連接數據庫作為數據全局共享,但是數據庫連接操作影響了很大的性能,所以需要使用緩存數據提高性能,這些緩存數據可能分布在不同的服務器中,為了保持數據的一致性,必須同步共享。個人數據保存在Session中也一樣,每臺服務器保存的Session數據也需要同步。

??? 這些數據的集群共享,已經有很多成熟的方案,比如 mecached session manager 等。


3、數據庫集群

?????數據庫服務器集群無非也是想達到負載均衡提高吞吐量的作用,傳統的數據庫如 MySQL /oracle/ sqlserver 等,可以采用分布式安裝部署,通過分表分區技術達到負載均衡,但是,為了保護數據的一致性,只能均衡讀操作的負載,無法均衡寫操作的負載,也就是插入數據庫時,還是采用只在中心服務器插入,然后復制到其他服務器,這就導致了瓶頸出現在中心服務器的插入性能上。


4、內存數據庫

??? 內存操作比傳統數據庫采用的磁盤讀寫操作,速度上不是一個量級的,如果中心數據庫采用內存數據庫,那么將會很好地解決插入瓶頸的問題,大大提高并發量。

??? gemfire是比較成熟商業化的內存數據庫,現在已經有了開源版本,據說12306就是采用它,缺點是開發文檔比較少。

??? mongodb是開源的比較有影響力的內存數據庫,基于類json格式結構數據庫,比較靠近關系型數據庫,用于統計查詢過濾的系統是很好的選擇。

??? redis 是純key-value的緩存數據庫,結構比較單一,用作緩存比較合適。


5、緩存數據集群

?? 緩存數據可以減少數據庫的頻繁操作,提高性能,但是為了保證數據的一致性,這些分布在不同服務器的緩存數據需要集群共享。

?? mecached 是不錯的分布式緩存。


6、session集群

??? 用戶數據一般保存在session中,類似于緩存數據,Session數據也需要集群共享。

?? mecached session manager 是值得推薦的 集群Session方案。


7、獨立文件存儲服務器

?? 說完了服務器集群,現在該說怎么優化單臺服務器性能了。

?? 下載文件,顯示圖片,這些都是占用很大帶寬的資源,帶寬不夠,還會消耗cpu性能。

?? 我們把文件和圖片都保存到獨立的文件服務器里,這樣web服務器就會只負責運算和傳輸少量文字內容,顯示圖片或下載文件轉向文件服務器,顯示圖片或下載文件慢也不會影響后面的用戶操作,增加高并發量。當然,文件服務器也可以多臺鏡像服務器負載均衡提高下載速度。


8、html靜態化

??? 很多數據庫里的固定資源(比如新聞內容)可以查詢出來后轉成html頁面,這樣就不需要每次都去查詢數據庫,直接訪問html頁面提高速度。

??? 值得注意的是,html靜態化只適用于某些特定場合,很多系統是無法靜態化的,不要抱以太高的希望。


就這些了,可能還有些沒想到的方面。

關注我寫的開源框架? ErpCore & BigCore ,

下載源碼到? http://www.8088net.com

總結

以上是生活随笔為你收集整理的承载千万级并发的分布式系统架构设计思想的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。