转眼 5 年,两个当初写着玩的 go 项目不知不觉加了很多功能,合计也有 3000 多 star 了,开心又疲惫,当作是职业生涯的纪念

3 天前
 lesismal

两个项目分别是: https://github.com/lesismal/arpc

https://github.com/lesismal/nbio

2024 年到现在的主要变化:

arpc

  1. 一点缝缝补补
  2. 顺便支持了 stream 。我个人觉得 stream 比较鸡肋,因为原本已经支持双向 Call/Notify 在绝大多数场景都比 stream 还方便,需要 stream 的场景并不多。

nbio

  1. 优化 http/websocket 解析相关的逻辑和对象,降低了内存使用和 gc 压力,配合 SetMemoryLimit 让,在 4c 的 ubuntu 虚拟机上,百万连接 websocket 1k payload 压力测试,内存占用能控制在 1G 以内、tps 10w 。
  2. 优化了 bufferpool ,[]byte 变为 *[]byte ,减少小对象频繁分配,降低 gc 压力,这是首次 sub package interface 定义变更、与之前版本不兼容,但 nbio 主 package 仍然保持兼容性,除非自定义了 mempool 否则用户因该也不需要对代码做改变。
  3. 改掉了一些 buffer 相关的低概率脏内存 bug

当初这两个项目都是写着玩的

两年多前,把 arpc 也拿去 rpc benchmark 仓库去跟其他知名项目对比了下,也算是跑出了个不错的成绩,比较公平的三方测试可以请看鸟窝老师这里: https://colobu.com/2021/08/01/benchmark-of-rpc-frameworks/ https://colobu.com/2022/07/31/2022-rpc-frameworks-benchmarks/

nbio 是为了解决 golang 海量连接场景的内存与 GC 压力、以及对应的 OOM 和 STW 问题,暂时算是 golang 社区里功能比较齐全的独一份。

arpc 实现很简单、没费太多精力,但 nbio 花费了太多精力,这几年身体都有点垮了。还想给 nbio 支持 HTTP2.0/QUIC ,但业余时间用爱发电,目前是没精力了,因为实在是太耗精力了。

5 年,40+的年纪,也算是程序员职业生涯末期,秋后的蚂蚱了,给自己留个纪念。

感谢所有我仓库的用户的支持, 感谢所有 issue pr 以及经常交流讨论的朋友们, 我个人精力有限, 大家的关注支持和交流让我的仓库完善了很多!

提前祝大家新年快乐,身体健康,诸事顺遂!

1621 次点击
所在节点    程序员
15 条回复
mysunshinedreams
3 天前
很棒,加油,蛇年快乐,万事如意!
gongquanlin
3 天前
大佬大佬,很久之前就 star 了 nbio ,拜读
lesismal
3 天前
@gongquanlin #2 感谢支持! 欢迎多来交流!
prosgtsr
3 天前
nbio ,确实 nb👍
arphone
2 天前
很棒,加油!
spritecn
2 天前
afk 帖啊...同快 4 张,读的心酸
wkong
2 天前
大佬加油!
pangzipp
2 天前
大佬加油!
abcde123456789
2 天前
这是大佬
kingcanfish
2 天前
新年快乐 每次都能在大佬和 v 友的“激情探讨” 中学到很多新知识~
huig
2 天前
后续干嘛去 我不想打工了
icode1688
2 天前
牛逼
ziyue002
2 天前
很棒,加油!
lesismal
2 天前
@prosgtsr 这算是我职业生涯里的最佳命名了

@spritecn 末期末期, 还没全退, 但是准备中...

@kingcanfish "激情探讨", 做清醒的自己~

@huig 来来来, 兄弟一起干 BA
stabc
1 天前
为什么两个加起来一个 issue 都没有?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/1106238

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX