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服务端时,当转发速度小于接收速度状况下的非堵塞异步实现。 * 客户端和服务端的请求和响应在转发端的并发隔离。