近來工作,開始熟悉服務器架構的東西,還熟悉linux服務器調試的一些相關技術,發現年輕時應該多犯錯誤,要多問幾個爲什麼,研究方法,如果你有源碼,可一直看底層代碼,不要想當然,也不要說估計等這樣的話,要根據證據來找東西,不要全部猜想。最重要的是發現問題並解決問題,其實除此之外,工作以後,最好的老師就是犯錯和總結倆位老師。
下面我說一些近來的服務器相關知識的理解,對於我們公司的服務器架構,根據web端收到的數據,把web端數據解出來,封裝成系統內部使用的一個消息事件,壓入隊列裏面,然後通過事件線程來處理壓入隊列的事件。這個就相當於一個模型,把某種外部語言轉化成內部可以使用的大家都認識的語言,其實就是一種協議。還有linux調試下的core文件
在main函數裏面可以加入一些代碼,來監視當服務器程序崩潰時,輸出最後堆棧的信息,這個對於程序員調試很重要,尤其在線用戶很多,無法本地調試的時候。其中主要有以下消息機制供大家參考:
signal(SIGSEGV, saveBackTrace);
signal(SIGILL, saveBackTrace);
signal(SIGFPE, saveBackTrace);
signal(SIGABRT, saveBackTrace);
signal(SIGTERM, saveBackTrace);
signal(SIGKILL, saveBackTrace);
signal(SIGXFSZ, saveBackTrace);
其中savebacktrace 是自己寫的函數接口~~~
。