beego 1.12.1 发布,Go 应用框架

栏目: 软件资讯 · 发布时间: 4年前

内容简介:作者:邓明 from beego-dev 不久前,我们发文说 Beego 重新组建了一个团队,再次开始维护了。 经过这一段时间的努力,我们终于完成了重启之后的第一个版本。这个版本,我们集中精力修复了很多陈年 issue,同时也尝...

作者:邓明 from beego-dev

不久前,我们发文说 Beego 重新组建了一个团队,再次开始维护了。

经过这一段时间的努力,我们终于完成了重启之后的第一个版本。这个版本,我们集中精力修复了很多陈年 issue,同时也尝试支持了一下 promethues 。欢迎大家使用。 Release Note

Prometheus 支持

一个没有观测性支持的框架是没有灵魂的。这一个版本,我们走出了解决 metric 问题的第一步,使用 Prometheus 开发了一个 Web Middleware ,用户可以在开启了 admin 服务之后尝个鲜了。

例子

 

beego 1.12.1 发布,Go 应用框架
 

 

Prepare Statement 缓存优化

在 v1.12.0 的时候,我们引入了 Prepare Statement 的缓存机制。Beego 内部所有的查询都会通过 Prepare Statement 来执行,以提高安全性和性能。

但是在缓存 Prepare Statement 的时候,存在两个问题:

  1. 未能设置缓存的 Prepare Statement 的数量限制,用户使用不当的时候,会导致 "Can't create more than max_prepared_stmt_count statements" 的错误;
  2. 任何一个 Prepare Statement 被创建出来以后,我们并没有主动关闭,而是依赖于会话结束之后自然释放;

这一次,我们也改进了这些缺点:

  1. 我们采用了 LRU 来缓存 Prepare Statement ,当一个 Prepare Statement 被 LRU 淘汰的时候,我们主动关闭 Prepare Statement ;
  2. 为了解决 Prepare Statement 被 LRU 淘汰之后,还存在用户使用继续使用该 Prepare Statement 的问题,我们引入了计数功能,会等到所有用户都释放了 Prepare Statement 之后再关闭。

这个优化应该算是走在了 ORM 框架的前列。我们看过一些开源框架的代码,它们要么没有缓存 Prepare Statement ,要么如优化之前那样,没有主动关闭;要么则是将关闭的决策交给了用户,依赖于用户主动找到未被使用的 Prepare Statement 而后自己关闭,而用户其实也很难判断出来 Prepare Statement 有没有被别的用户使用。

静态缓存文件优化

社区里面一直反馈的一个问题是,Beego 缓存的静态文件的功能,会消耗大量的内存,而 Beego 并没有限制内存的使用。 这个功能比较常用的是将 Beego 作为下载服务器。

这一次我们通过三个角度的优化来彻底解决这个问题:

  1. 采用 LRU 来做缓存,淘汰长期未使用的缓存下来的文件;
  2. 大文件不再缓存。我们通过参数的形式,允许用户设置一个阈值,超过这个阈值的文件将不会被缓存下来;
  3. 限制缓存的文件数量。结合前面的文件大小限制,用户可以准确预估,在当前配置下,Beego 静态文件缓存将会最多占用多少内存;

如果文件以小文件为主,那么这个缓存效果将会十分好。

手机全号码段校验支持

我们再一次更新了手机号码校验的正则表达式,现在已经可以支持全号码段的手机号码校验了。

性能优化

这一次,我们合并了多个跟优化相关的 PR。优化集中在锁优化,包括缩小锁的范围,尽量使用读锁等;Redis 采用 Scan 命令来取代 Keys 命令...

更多

我们还修复了其余的问题,比如说遗漏加锁导致的并发问题,还有热更新模块,在设置了某些选项下主线程依旧存活的问题……

在经过这个版本以后,我们接下来的核心工作是 Beego v2,目前我们出了一个 V2 RoadMap 在征集社区意见。欢迎大家参与进来,出谋划策。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

区块链

区块链

长铗、韩锋 / 中信出版社 / 2016-7 / CNY 58.00

《区块链:从数字货币到信用社会》从历史与背景、发展现状、基础原理与技术、应用生态、存在的问题与挑战等方面论述了区块链是怎样立起来的,为什么人人都在谈论区块链,区块链的秘密在哪里、进阶区块链(第二代区块链技术)是什么,区块链怎么玩,怎样从信息互联网走向价值互联网,如何用法规约束和监管区块链,区块链走向何处、争议与挑战,并通过经济、金融、货币、法律、科技哲学等角度来加以分析区块链在各个方面遇到的问题和......一起来看看 《区块链》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具