1. 【推薦】高并發服務器建議調小TCP協議的time\_wait超時時間。
說明:操作系統默認240秒后,才會關閉處于time\_wait狀態的連接,在高并發訪問下,服務器端會因為處于time\_wait的連接數太多,可能無法建立新的連接,所以需要在服務器上調小此等待值。
正例:在linux服務器上請通過變更/etc/sysctl.conf文件去修改該缺省值(秒): net.ipv4.tcp\_fin\_timeout = 30
1. 【推薦】調大服務器所支持的最大文件句柄數(File Descriptor,簡寫為fd)。
說明:主流操作系統的設計是將TCP/UDP連接采用與文件一樣的方式去管理,即一個連接對應于一個fd。主流的linux服務器默認所支持最大fd數量為1024,當并發連接數很大時很容易因為fd不足而出現“open too many files”錯誤,導致新的連接無法建立。 建議將linux 服務器所支持的最大句柄數調高數倍(與服務器的內存數量相關)。
1. 【推薦】給JVM設置-XX:+HeapDumpOnOutOfMemoryError參數,讓JVM碰到OOM場景時輸出 dump信息。
說明:OOM的發生是有概率的,甚至有規律地相隔數月才出現一例,出現時的現場信息對查錯非常有價值。
1. 【推薦】在線上生產環境,JVM的Xms和Xmx設置一樣大小的內存容量,避免在GC 后調整堆大小帶來的壓力。
2. 【參考】服務器內部重定向使用forward;外部重定向地址使用URL拼裝工具類來生成,否則會帶來URL維護不一致的問題和潛在的安全風險。
- 一、編程規約????1
- (一) 命名風格????1
- (二) 常量定義????3
- (三) 代碼格式????4
- (四) OOP規約????6
- (五) 集合處理????9
- (六) 并發處理????12
- (七) 控制語句????14
- (八) 注釋規約????16
- (九) 其它????17
- 二、異常日志????18
- (一) 異常處理????18
- (二) 日志規約????19
- 三、單元測試????21
- 四、安全規約????23
- 五、MySQL數據庫????24
- (一) 建表規約????24
- (二) 索引規約????25
- (三) SQL語句????27
- (四) ORM映射????28
- 六、工程結構????30
- (一) 應用分層????30
- (二) 二方庫依賴????31
- (三) 服務器????32
- 附1:版本歷史????34
- 附2:本手冊專有名詞????35