优化ETL过滤模块
大石头 authored at 2017-08-29 17:11:46
3.08 KiB
X
v3.1.2015.0511   增加日志服务器LogServer,用于接收网络日志

v3.0.2014.1202   第三代网络库完成,回归APM模型,以简单为核心理念。网络基础测试通过,Tcp压力测试2w通过

v2.3.2013.0917   Modbus数据存储增加不触发写入事件的索引器操作

v2.3.2013.0716   升级Modbus协议,不再使用二进制序列化,保持和MF兼容

v2.2.2012.0420   采用NetUri精简代理会话
                 HttpProxy增加403缓存和静态文件缓存

v2.1.2012.0411   精简核心结构,进一步完善网络模型

v2.0.2012.0229   完全重构网络模型。划分为四层:Socket层、封装层ISocket、数据会话层ISocketSession、网络会话INetSession

v1.7.2012.0209   完善串口服务器和DNS服务器

v1.7.2011.1228   抽象网络接口,方便编写应用服务
                 优化事件参数对象池,避免内存泄漏
                 增加DNS协议解析
                 设计代理服务器架构
                 **经过几天的Echo压力测试,服务端连接数达到143711,CPU在1%~10%,内存WorkSet 523M,PrivateBytes 591M
                 一系列测试表明,服务端似乎没有连接上限,每次测试都以客户端端口用完导致“队列已满”异常而告终。
                 MS承认网络异步操作有内存泄漏,大量OverlappedData会留在内存,官方建议做法是减少异步操作。
                 此外,360安全软件会导致网络性能变得很差,客户端很容易崩溃。

v1.6.2011.0626   修正一个严重错误,TcpServer开始异步Accept时,不需要设置缓冲区,否则客户端连接后不会马上得到Accept事件,
                 而必须等到第一个数据包的到来才触发,那时缓冲区里面同时带有第一个数据包的数据。

v1.6.2011.0624   全面支持IPV6,并实现了隐式探测支持,只要用到IPV6的地址(本地和远程),就自动采用IPV6通信

v1.5.2011.0413   改善NetServer,不再作为抽象基类,通过指定协议类型可直接创建Tcp/Udp服务器
                 重写Echo服务器和数据流服务器,把Tcp/Udp的实现统一起来
                 实现另外四个简单网络服务器

v1.4.2010.1201   增加Socket数据流SocketStream
                 增加Tcp和Udp数据流网络服务

v1.3.2010.1107   使用SocketAsyncEventArgs重建网络模型
                 2010-11-16 调整完成,基本上满足万级连接下工作的要求,一万以上连接需要服务器拥有更多的处理器核心,硬件越强,程序工作越强!

v1.2.2010.0915   优化读写内存流ReadWriteStream,增加读写阻塞和超时、超大时自动压缩缓冲区的功能

v1.1.2010.0816   增加增强的TCP客户端TcpClientEx,使用内存流解决粘包问题

v1.0.2010.0803   创建网络库


历史背景:
2005年做过一个Http反向代理HttpProxy,后来发展成为网络中间件(网络数据交换机)XProxy。
多年的更新中发现,很多网络操作可以抽象出来,使得更接近上层,方便扩展使用。