发布于 2016-05-10 10:55:38 | 97 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的精品教程,程序狗速度看过来!

Voovan 高性能WEB服务器及网络通信框架

Voovan 是一个高性能异步网络框架和HTTP 服务器框架,同时支持HTTP客户端抓去、动态编译支持、数据库访问封装以及DateTime、String、Log、反射、对象工具、流操作、文件操作、异步双向通道等功能。旨在提供可靠、方便、可单元测试的代码。它是一个无任何依赖的独立工具包,希望能够方便广大开发者快速的实现应用。


经过长时间的努力,Voovan 开源项目终于接近1.0首个版本的发布,今天放出的是 v1.0-alpha。

在这段时间内项目经历了:压力测试,性能优化,以及部分模块的重构.同时也为大家带来的基于 Voovan HttpServer 的性能监控模块(基于目前项目的性能分析)为运行在 Voovan 服务上的应用调优做了一个初步的铺垫.

本次 alpha 版本重大更新:

  • Aio/Nio 异步通信框架性能的优化.

  • HttpServer 基于 HTTP1.1 对 HTTPS 的支持

  • JDBCOperate 类对存储过程的支持及事物的调优

  • 对于 SQL 操作中无对应数据支持的占位参数自动移除.避免多个条件组合查询中的空条件导致的无结果集

  • HttpServer的链式操作支持.

  • HttpServer性能监控模块[ISSUS]

以下是v1.0-alpha 的更新内容:

    BUG修复:

  • 使用监视过滤器的时候,统计的处理时间没有包含过滤器处理的时间,将监视过滤器(HttpMonitorFilter)从过滤器链的最后一个调整到第一个

  • Http服务的过滤器对象无法区分是请求还是响应的调用,将原来的 doFilter方法删除,并增加 onRequest 和 onResponse 方法,参数相同.

  • HttpServer 静态文件 ETag 在文件路径不改变时不会发生变化的不过,导致文件一但被加载就会一直返回304的问题

  • 修复 Connection reset by peer 错误后,导致的死循环线程无法结束的问题

  • 多个filter执行顺序的问题

  • getObjectFromMap方法复杂对象时对 Map 的 value 为 null 的 bug 处理

  • getObjectFromMap方法重构并优化,对基本类型(int,float,long)的支持,以及 Date 方法 bug 处理

  • Http 消息截断器 的 boundary 判断报文结束判断的问题

  • 当日志文件目录不存在时自动创建,且日志文件不存在时提示,并只输出其他日志

  • 解决 SSL 连接 handshake 线程同步的问题

  • 解决发送是缓冲区满,后续字节没有继续发送的 bug

  • Logger.java中simple方法存在递归死循环的风险

  • KeepAlive 定时器对象不销毁的问题

  • WEBSOCKET两次关闭事件的 bug 处理

  • JSON 解析的数据为 long 时没有返回正确的数值

  • 解决JdbcOperate异常后连接池泄露的问题

  • 对SQL 操作空结果集(null)的异常

  • JdbcOperator 函数冲突

  • 当同一进程内多个 socket 同时工作,会在 socket 关闭时关闭线程池,下一个 socket 则无法访问到线程池

  • Socket SSL通信在握手没有完成时开始接受消息导致异常

  • 每次访问后 Session 的超时时间没有刷新

  • JSON数组解析最后一个元素和"]"直接会被误解析为一个元素

  • 换行消息截断实现类处理异常原始判断逻辑r 或者n 判断为换行. 但 window 以rn换行,导致断包下一个消息的起始字符多了一个n

  • HTTP Chunked响应报文结束判断逻辑问题

  • POST 的 multipart/form-data类型参数解析异常

  • JSON 转对象时如果有注释会失败.如果JSON转对象失败不会再返回解析后的 Map,而是返回null.

  • 优化 Http 消息分段算发

优化内容:

  • 在使用监视过滤器的时候,统计的处理时间没有包含过滤器处理的时间,将监视过滤器(HttpMonitorFilter)从过滤器链的最后一个调整到第一个

  • 抽离出内部类 FilterConfig2.为 HttpRequest 增加 attribute

  • 修改 HttpBizFilter 的方法,增加了返回值往复的传递机制,用于控制过滤去的状态

  • 为 HttpServer 提供了链式调用服务

  • 增加 Http 服务监控模块

  • TFile 中增加读取文件最后几行的行数public static byte[] loadFileLastLines(,)

  • 在 Web.json 中增加是否输出 access.log 日志文件的控制

  • Body 对象增加长度判断函数size()

  • 反射方法增加忽略属性名大小写的 findField 方法

  • 加 queryObject 和 queryObjectList 等方法,表的列名 和 对象的属性名的模糊匹配

  • 异步通信类使用非栈内存管理缓冲区提高性能

  • JdbcOperate 提供存储过程调用方法

  • 在未读取到数据时不进行消息截断的判断

  • 增加 SSL 连接 无客户端认证模式

  • 增加 TimeOutMessageSplitter,并且在 Aio 和 Nio中实现如果没有添加MessageSplitter,则使用TimeOutMessageSplitter作为默认

  • 增加单日志输出类用于补充输出特定的日志文件 SingleLogger

  • 异步通信包的 IoSession 类的 send 方法修改为 public,但要注意该方法不会出发 on Sent 事件

  • 为HttpServer 增加访问日志 access.log

  • 对默认的WEB 服务的根路径进行优化,可以自动识别相对和绝对路径

  • TFile 增加文件写入函数(采用流的形式)

  • TFile 增加取文件大小的函数

  • TFile 读取文件的时候没有用UTF-8转码,读不出带中文路径的文件

  • Logger.simple支持日志缩进(/s,/t)

  • Logger 增加日志输出控制方法setState()

  • 为 HttpClient 对象增加 putHeader 方法

  • HttpClient在连续不断的发送请求时Cookie自动留存

  • 将 HTTPClient 修改成可以不关闭连接持续不断的返送 HTTP 请求.

  • JdbcOperate 使用":"来标识参数会和时间格式冲突,修改成"::"标识参数

  • 日志工具异常处理,避免因日志异常导致进程结束.

  • 增加HTTPClient 自定 Cookie 的功能

  • 新增JSONDecode 中对 Long 的支持

  • Log 日志工具需要自动分割生成每天的日志文件

  • 为 HTTP 服务增加过滤器支持

  • 对请求参数,在构造时自动使用字符集参数进行编码

  • Part 对象增加构造,可直接用构造函数构造简单Part,并提供字符集支持

  • Http 请求对象增加根据请求类型自动填写ContentType.

  • 增加 Connection: keep-alive 头,避免 HTTP 报文被服务端断开连接后接受报文不完成

  • 增加按换行返回消息分割器

  •  增加按定长返回消息分割器



历史版本 :
Voovan v2.0.2,高性能异步通信框架和工具库
Voovan v2.0 发布,无依赖的AIO/NIO异步通信框架
Voovan V1.5.3 发布,高性能异步通信框架和工具集
Voovan v1.5 发布,高效堆外内存管理,性能不打折扣
Voovan V1.0-RC-1 发布,持续优化性能和稳定性
Voovan V1.0 (Beta.3.2) ,增加 UDP 异步通信
Voovan v1.0.beta.1 文档丰富/性能优异
Voovan V1.0-alpah-2 发布,并发性能大幅度提升
Voovan framework v1.0-alpha 释出
最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务