G5自從上週發佈v1.0.0版以來受到了廣大網友的熱切關注,我根據網友的需求還會繼續補充功能和修正缺陷,若是需求累積量大的話我基本上會保證每週一更。 本週版本更新至v1.1.0,主要作了以下更新: * 優化了轉發會話結構:每一個轉發會話都有本身的輸入輸出數據緩衝區,實現當接收速度大於發送的狀況下的非堵塞異步處理,便於將來擴展。 * 補充了全異步框架的最後一塊代碼:當轉發緩衝區滿的狀況下,暫時關閉輸入端可讀事件,異步等待輸出端可寫事件。 * 新增規則屬性超時控制"timeout":每條會話繼承規則的超時控制,防止空鏈長久佔用鏈接和會話資源。 配置示例:(注意白字符分隔) admin G ( timeout 300 ) 192.168.1.54:* ( maxclients 2 ) - 192.168.1.54:8060 ; * 新增規則實體內來源地址集合屬性客戶端鏈接數控制"maxclients":每條規則配置每一個客戶端網絡地址最大鏈接數,防止惡意大鏈接攻擊。 配置示例:(注意白字符分隔) webdog2 RR *.*.*.*:* ( maxclients 5 ) - 192.168.1.54:8080 > 192.168.1.79:8089 192.168.1.79:8090 192.168.1.79:8091 ; 至此epoll(ET)的非堵塞全異步的應用層框架已完整實現,主要包含如下內容: * 基於epoll(ET)事件處理應用層框架。 * accept客戶端鏈接後轉連服務端connect的非堵塞異步實現。 * recv客戶端數據後轉發send服務端時,當轉發速度小於接收速度狀況下的非堵塞異步實現。 * 客戶端和服務端的請求和響應在轉發端的併發隔離。