5

2023(完)

 8 months ago
source link: https://blog.gotocoding.com/archives/1856
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

2023(完)

2024年1月1日 作者 重归混沌

2023年又已经走完了最后一秒。相比2022年,技术上的收获更少了,令我醍醐灌顶的突破已经很久没有出现过了。

回顾历年来的blog,我发现这几年的技术增长趋势越发的平缓,2023年更是几乎趋近于直线。

虽然技术突破几乎没有,经验总算还有一点点增加。

虽然现在工作语言已经切换为Go语言,但是我依然没有放弃对Silly的开发。

我常常反思并比较,,探究使用silly来实现工作中的业务逻辑的优势和劣势。

在这个过程中,我发现即使Silly框架只存在竞争而非并发问题,抽象出一个mutex也能大幅减轻业务逻辑的抽象负担

在为Silly增加对prometheus的支持时,我也发现了自己的一个盲点

尽管我对操作系统和硬件电路的宏观运作流程有清晰的认识,但对具体细节却知之甚少。

这个缺点或许与我多年来的学习习惯有关,我总习惯于先了解全局再深入细节,但现在看来应该适时深挖一下操作系统相关的知识了。

在过去一年的业务开发中,收获不多,能够抽象成通用模式的更是只有一种而已,那是一种在分布式中如何稳定同步数据源的思路。

我继续对silly增加etcd支持的过程中,我下定决心为timer增加了取消功能。值得一提的是,增加这个取消功能在实现上并没有花费太大代价。

在编写Go语言代码的过程中,我最羡慕的不是他的各种特性,而是其便捷的性能分析器。

有了这个性能分析器,我可以更从容地遵循过早的优化是万恶之源这一箴言。

因此,我非常期待也能在编写Lua代码时也可以Don't do it yet.

正巧我也有学习eBPF和Rust的需求。因此,我决定使用Rust编写eBPF代码,以实现Lua性能分析器的功能。 当然,同时学习两种未知领域的过程必然充满挑战,但痛苦终究是短暂的。

除了上述稍显具体的收获外,还有一种无法言喻的成长,那就是我的“性能追求症”得到了极大改善。

在工作中,由于一些特殊限制,我经常会编写那些以前因时间复杂度较高而避免的代码。

然而这些代码上线之后并没有出现性能问题。这大大增加了我对过早的优化是万恶之源的信心。

除此之外,我对游戏服务器框架有了新的理解。

我认为整个游戏服务器其实只需要分为Role ServerGlobal Server就够了。

Role ServerGlobal Server只是代表数据的职责,并不局限于某种具体的业务逻辑。

Role Server只用来处理所有和玩家自身相关的数据,而Global Server用来处理玩家和玩家之间的交互数据。

当然这只是一种猜想,如果有可能我2024年会实现出来以做验证。

虽然过去任务总是没法完全完成,但是这并不能阻止我定下2024的目标:

  1. 为[silly](https://github.com/findstr/silly)增加完etcd`相关的支持。
  2. 实现并验证上述服务器框架的猜想。
  3. 探索如何将这套框架实施在K8S上,以学习K8S。
  4. 继续优化silly的log模块,学习ELK,尽量能实现建议的分布式追踪功能。
  5. 如果还有时间,继续学习ECS,研究ECS在网络同步和服务器端的应用。

相关

2022(完)2023年1月1日在“杂谈”中

终于给Silly的定时器增加了取消功能2023年8月19日在“代码优化”中

20192020年1月22日在“杂谈”中

分类 杂谈

发表评论 取消回复

评论

名称 电子邮箱地址 网站地址

Math Captcha
ten + = 20

通过邮件通知我后续评论

通过邮件通知我有新文章


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK