« Lua 的多线程支持 | 返回首页 | 判断点是否在三角形内的算法精度问题 »

Skynet 1.2.0

今天我发布了 skynet 1.2.0。

距离上次发布 1.1.0 已经有一年了。虽然我觉得给 skynet github 仓库里某个特定版本起个有意义的名字并无太大意义,因为我也不会刻意去维护一个所谓稳定版。但在 issues 中还是发现有一些同学还在基于上个 1.1.0 的 release 版提问题,我认为还是保持一年一个版本号比较好。

其实,对于活跃项目,最好的方法还是始终跟进 github 上的 master 比较好。我也刻意在维持代码的向前兼容性。skynet 的 api 已经很稳定,不用太担心更新造成项目跑不起来。话说回来,即使某次更新打破了兼容性,每次一小步的跟进也比隔上一年才同步一次,或是永不升级来得好。

跟进及时可以减少更新带来的新问题。有麻烦可以马上反馈,我更容易帮助解决;不更新容易让 bug 滞留,原本已经解决的 bug 可能在未来再次困扰你。随着 skynet 的用户越来越多,隐藏在犄角旮旯的 bug 更容易被找出来。在 issues 板块,已经有很多问题其实是在 issue 提出时已经被解决了的,仅仅只是因为未更新代码。这种问题无疑浪费了大家的时间。

这次 1.2.0 主要是累积修复了许多 bug 。例如死掉的服务可能在调用过它的服务中残留信息,导致服务地址回滚复用时系统工作不正常。还有 cluster 发包乱序,socket 并发写等问题。这些都是在大量使用时才会发现的 bug 。

另外,mongodb 和 redis 的 driver 都一定程度上增强了。这部分改进的代码都并非来自于我,而是由使用它们的同学根据实际需求完成的。

由于调试需要,我还增加了许多调试相关的指令。在过往的 blog 中都有介绍,可以通过查看本 blog 的 skynet 标签浏览。未来 skynet 的主要发展方向还是以增强运行维护功能为主,核心功能不会有太大改动。

我希望明年的 1.3 版本可以用上 lua 5.4 。这是 lua 的版本大更新,但应该对已有的项目影响不大。lua 5.4 会极大改进 lua 的 gc 效率,更及时的内存回收,能极大减少内存峰值占用。

Comments

"还有 cluster 发包乱序,socket 并发写等问题。"cluster发包乱序是指如下问题吗:
-------------------------------------------
cluster 间的请求大部分会按调用次序排序,即先发出的请求或推送先到。但也有例外的情况。当发送包单个超过 32k 时,包会被切分成多块传输,大的包必须等到所有块传输完毕,在这种情况下,大包的请求逻辑上先发出,可能后收到。回应也有这种可能。

两个 cluster 间,如果有相互请求/推送的情况,会建立两个 tcp 连接。所以、 A 向 B 发起请求和 A 回应 B 的请求,这两类信息是不保证次序的。
--------------------------------------------------
如果是这个问题的话,云大,是不是应该更新下skynet Wiki Cluster篇?希望云大邮件回复下我,skynet的HISTORY.md文档里没有明确描述1.2.0版本的框架cluster模块到底做了哪些改进。

今年对于Skynet1.3版本的更新我有个愿景:
提供Websocket和Websockets支持!

云大,skynet之父!

喜大普奔!

Great job!

这是 lua 的版本大更新

小伙子你很不错嘛,5千块钱跟我干怎么样

sf

Post a comment

非这个主题相关的留言请到:留言本