您现在的位置是:首页 > 文章详情

Furion v4.6.8 发布,阿里云 PTS 压测抗住了!

日期:2022-10-24点击:370

这两周主要来自一些使用 Furion 的生产项目压测反馈,开发者通过 JMeter 和阿里云 PTS进行压测,有些抗住了,有些没抗住。

所以这两周针对 Furion 底层做了非常多的优化,大大减低了内存和CPU的占用,最后通过更新到最新版后,全部抗住了。

视频体验

下面的项目是使用 Furion 最新版仿 Trello 功能(200%)体验,双核,内存4G,代码1M。

性能优化

本期主要针对框架底层做了不少性能改进,主要是高频请求下内存的占用和CPU的持续飙升,主要来自一个小伙伴的反馈。

🤐 他项目使用了 Furion 的事件总线,每秒高频接收 4000条消息并处理,由于 GC 来不及回收导致内存和CPU占用非常大。

😐 后来经过框架底层优化之后,内存持续稳定,但 CPU 一直下不了。

😊 最后经过继续优化之后,内存正常了,CPU 也正常了。

本期更新

  • 新特性

    • [新增] LoggingMonitor 支持 FileResult 类型监听 4.6.0 bf9c0b1
    • [新增] LogMessage 结构 UseUtcTimestamp 字段,解释日志记录时间格式是 UTC 还是 LOCAL 时间 4.6.1 aab0371
    • [新增] 事件总线模块重试失败后支持回调 4.6.1 #I5UVMV
    • [新增] LoggingMonitor 支持序列化忽略指定属性名或属性类型 4.6.1 81c6343
    • [新增] long 序列化丢精度的 JsonConvert 内置转换器,.AddLongTypeConverters() 4.6.5 #I5VJHC aded58d
    • [新增] app.EnableBuffering() 拓展,解决 Request.Body 不能重复读问题 4.6.5 aded58d
    • [新增] 支持特别接口使用特定的序列化规则 4.6.6 797b0bf
    • [新增] LoggingMonitor 自动解析 JWT 时间戳为时间格式 4.6.8 9e31b0b
  • 突破性变化

    • [新增] 适配 .NET 6.0.10  .NET 7 RC2 4.6.2 6bb2fad
    • [新增] 内置 Microsoft.AspNetCore.Mvc.NewtonsoftJson 拓展,原因是太多人使用了 4.6.5 aded58d
    • [移除] "some log".SetCategory(name) 拓展方法 4.6.0 ec4838c
    • [移除] DateOnlyJsonConverter  DateOnlyOffsetJsonConverter 处理 4.6.5 aded58d
    • [调整] 事件总线触发处理程序的逻辑,由过去的 foreach 改为 Parallel.ForEach,吞吐量提升近 4 倍 4.6.4 7384c9c
    • [调整] .AddDateFormatString() 名称为 .AddDateTimeTypeConverters() 4.6.5 aded58d
    • [调整] 重构日志模块设置上下文数据功能 4.6.0 1c198ee
    • [移除] 远程请求 .SetTimeout  [Timeout] 配置方法,采用全局统一配置 4.6.4 7384c9c
  • 问题修复

    • [修复] 4.5.9+ 版本新增的 IncludeScopes 配置导致日志上下文失效 4.6.0 4a76841
    • [修复] 多个 sql 共用 DbParameters 出现冲突问题 4.6.0 #I5UO2H
    • [修复] 高频率写入日志导致堆内存溢出的异常问题 4.6.0 #I5UJRS
    • [修复] 框架内部所有使用 .CreateLogger 创建的日志对象无法应用上下文问题 4.6.0 ec4838c
    • [修复] 修复远程请求不能在 Worker Serivce 中进行构造函数注入,原因是注册为 Scope 范围作用域 4.6.3 974f835
    • [修复] 个别服务器的 SQL Server 不支持 TLS 1.2 协议问题 4.6.3 974f835
    • [修复] .ToDictionary() 拓展不支持 JObject 类型问题 4.6.5 #I5VJHC a11bf8d
    • [修复] LoggingMonitor 处理 long 类型丢精度问题 4.6.5 #I5VJHC aded58d
    • [修复] 动态 WebAPI  class 类型上贴 [ApiDescriptionSettings(true)] 导致接口 404 问题 4.6.7 #I5WQ18
    • [修复] 超高频率下发送事件总线消息,但是 GC 来不及回收导致内存和 CPU 爆掉问题 4.6.8 dbc7935
    • [修复] JWT 模块自动刷新 Token 达到临界值时导致自动刷新失败,并返回错误的 401 状态码 4.6.8 #I5WXHZ
    • [修复] 自动生成 vue/react/angular 客户端工具库错误处理 Token 问题 4.6.8 #I5WXHZ
  • 其他更改

    • [调整] LoggingMonitor 返回值类型是 泛型 时获取 FullName 带程序集签名问题 4.6.2 f0aaec6
    • [调整] 优化远程请求性能,添加复用池的机制,避免频繁销毁创建 4.6.4 7384c9c
  • 文档

    • [新增] 远程请求设置客户端生命周期配置文档和新超时配置文档
    • [新增] JSON 序列化处理 long 类型说明文档
    • [新增] JSON 反序列化 DateTimeOffset 类型个别格式出错问题
    • [新增] 规范化结果支持特定接口配置独立序列化配置文档
    • [更新] 日志记录文档、事件总线文档、数据库入门文档、JSON 序列化文档、远程请求文档、安全授权文档、生成前端请求代理文档

其他

原文链接:https://www.oschina.net/news/214711/furion-4-6-8-released
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章