伺服器底層

2021-06-20 03:37:18 字數 659 閱讀 6138

前年,也就是2023年,當時在專案空閒的時候想寫個伺服器底層,想法的**是乙個穩定、高效的底層對伺服器開發與擴充套件有巨大的幫助。於是乎開始寫,當時寫了一點點,由於專案比較忙停下了手中的底層。後來在去年6月份重新拾起繼續完成,差不多在去年11月份弄完了。壓力測試效果不錯,穩定性也非常好........廢話不多說,開始。

先從伺服器模型開始說起,比較常見的多程序(apache)、單執行緒(libev,libevent,asio,twisted (python))、單程序多執行緒等等,下面鏈結有寫描述可以比較清楚的了解這些模型。

當然除了這些模型外還有一種基於協程,boost中有協程的支援,但我覺得在語言級別對協程支援得比較好的是go語言,erlang語言,跑題了不在討論範圍。。。呵呵

而我選用的是單程序多執行緒,的reactor模式,原因是在網路遊戲伺服器中,一般是以場景或者大廳為單位區分。

主迴圈接受連線線程(accept thread)

讀執行緒(read thread)

寫執行緒(write thread)

定時器執行緒(timer thread)

資料庫執行緒(db thread)

邏輯執行緒(logic thread)

協調執行緒(client thread)

整個底層包含這些內容,我將一一說明我的設計思路和這些執行緒幹的活,以及它們之間的資料互動

伺服器建立Servlet底層原理

1 伺服器根據客戶端的訪問路徑,獲得servlet的訪問路徑 2 伺服器拿著這個路徑去web.xml中進行匹配,這個過程需要對web.xml解析 3 匹配成功後,會找到相應的標籤,其值為servlet的類名,可以通過反射獲得該servlet的class物件 4 然後呼叫class物件的newinst...

web伺服器底層 http請求與相應

http請求 請求分為三個部分 請求行 請求頭 請求資料 請求行請求方式 get post等 請求目錄,分層 books 1.html http協議版本 http 1.1 請求方式有 post get head options delete trace put。一般用get post,get方式是通...

更接近底層的雲服務 自定義伺服器

本文講的是更接近底層的雲服務 自定義伺服器,it168 資訊 毫無疑問,基礎設施架構對於應用人員來說是複雜的。因此雲計算的乙個重要目的就是把企業從對基礎設施架構的龐雜管理中解放出來,讓使用者不需要知道自己的服務執行在什麼樣的複雜環境裡,只需要去應用就行了。日前,位於美國加州的raging wire公...