大並發伺服器開發學習筆記_01大並發伺服器架構介紹

來源:互聯網
上載者:User

標籤:更新   img   失敗   網路   作業系統   監視   應用服務   方案   接收   

大並發伺服器架構介紹

一、伺服器設計目標
(1)高效能(High Performance):快速請求響應;
(2)高可用(High Availability):能7X24小時工作,能夠進行容錯移轉;
(3)伸縮性(Scalability):能跨機器通訊;
二、分布式
(1)負載均載
(2)分布式儲存
(3)分散式運算

三、C/S結構

 

      任何網路系統都可以抽象為C/S結構

四、一個典型的伺服器結構

      網路I/O + 伺服器高效能編程技術 + 資料庫

1.超出資料庫連接數:
(1)問題描述:

  資料庫並發串連數10個,應用伺服器這邊有1000個並發請求,將會有990個請求失敗;

(2)解決方案:

  我們可以加一個隊列進行排隊,中介層DAL資料訪問層(佇列服務+串連池)。

2.超出時限:

(1)問題描述:

  資料庫並發串連數10個,資料庫1秒鐘之內最能處理1000個請求,應用伺服器這邊有10000個並發請求,會出現0-10秒的等待;

(2)解決方案:

  主要的商務邏輯挪到應用伺服器處理,資料庫只做輔助的業務處理,利用緩衝cache。

3.緩衝更新(緩衝同步)

(1)如果緩衝失效(timeout),重新去資料庫查詢,這種方法即時性比較差;

(2)將熱點資料存至緩衝,一旦資料庫中資料更新,立即通知前端的緩衝更新,這種方法即時性比較高。

4.緩衝換頁:

  記憶體不夠,將不活躍的資料換出記憶體。常見換出演算法有:FIFO(先進先出) LRU(最近最少使用) LFU(最不頻繁使用換出),這些在大家的作業系統課程中應該有介紹過。

5.nosql:

  key/value 存放非關係資料,一致性要求不是很高的資料,可以把nosql當做緩衝來使用,比如分布式緩衝開源軟體:redis memcached等。

6.資料庫讀寫分離:

  對大部分應用來說資料庫的讀操作,>寫操作,對資料庫進行負載平衡,master(主人) slave(奴隸)實現主從機制,主庫負責寫的操作,從庫負責讀的操作,利用大部分資料庫都有的replication機制。

7.應用伺服器的負載平衡:

 增加一個任務伺服器來實現,任務伺服器查詢可以監視應用伺服器當前的負載。如CPU高、IO高、並發高、記憶體換頁高等情況。

(1)應用伺服器被動接收任務:查詢到這些資訊之後,選取負載最低的伺服器分配任務;
(2)應用伺服器主動接收任務:更公平。

8.資料分區(分庫、分表):
(1)垂直資料分割:分庫,資料庫可以按照一定的邏輯,把表分散到不同的資料庫,如分為使用者表、業務表、基礎資料表;
(2)水平資料分割:如把使用者表的10條記錄分到10個資料庫,每個資料庫分到一條記錄。這種方式更常用。

9.伺服器效能的四大殺手:

(1)資料拷貝:盡量減少資料拷貝,伺服器內部一些緩衝解決;

(2)環境切換(理性建立線程): 該不該用多線程,單線程好還是多線程好,例如單核伺服器(採用狀態機器編程,效率最佳) 採用多線程編程時不能並發,反而增加了線程間的切換開銷;多核伺服器使用多線程能夠充分發揮多核伺服器的效能;

(3)記憶體配置: 記憶體池;
(4)鎖競爭:儘可能減少鎖的競爭;

 

  歡迎大家學習交流,如有不足懇請批評指正,轉載請註明出處,感謝您的支援。如果您也喜歡我的部落格可以持續關注我,讓我們一起成長,共同進步。

  生活很精彩 剔除雜質,留下對編程的窮極探索 純粹追求。

大並發伺服器開發學習筆記_01大並發伺服器架構介紹

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.