V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
lesismal
V2EX  ›  程序员

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

  •  
  •   lesismal ·
    lesismal · 1 天前 · 1523 次点击

    两个项目分别是: 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 以及经常交流讨论的朋友们, 我个人精力有限, 大家的关注支持和交流让我的仓库完善了很多!

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

    14 条回复    2025-01-21 01:12:26 +08:00
    mysunshinedreams
        1
    mysunshinedreams  
       1 天前   ❤️ 1
    很棒,加油,蛇年快乐,万事如意!
    gongquanlin
        2
    gongquanlin  
       1 天前   ❤️ 1
    大佬大佬,很久之前就 star 了 nbio ,拜读
    lesismal
        3
    lesismal  
    OP
       1 天前
    @gongquanlin #2 感谢支持! 欢迎多来交流!
    prosgtsr
        4
    prosgtsr  
       1 天前 via iPhone   ❤️ 1
    nbio ,确实 nb👍
    arphone
        5
    arphone  
       1 天前   ❤️ 1
    很棒,加油!
    spritecn
        6
    spritecn  
       1 天前   ❤️ 1
    afk 帖啊...同快 4 张,读的心酸
    wkong
        7
    wkong  
       1 天前   ❤️ 1
    大佬加油!
    pangzipp
        8
    pangzipp  
       21 小时 14 分钟前   ❤️ 1
    大佬加油!
    abcde123456789
        9
    abcde123456789  
       21 小时 14 分钟前 via Android   ❤️ 1
    这是大佬
    kingcanfish
        10
    kingcanfish  
       21 小时 9 分钟前   ❤️ 1
    新年快乐 每次都能在大佬和 v 友的“激情探讨” 中学到很多新知识~
    huig
        11
    huig  
       19 小时 32 分钟前   ❤️ 1
    后续干嘛去 我不想打工了
    icode1688
        12
    icode1688  
       19 小时 29 分钟前   ❤️ 1
    牛逼
    ziyue002
        13
    ziyue002  
       19 小时 17 分钟前   ❤️ 1
    很棒,加油!
    lesismal
        14
    lesismal  
    OP
       11 小时 6 分钟前
    @prosgtsr 这算是我职业生涯里的最佳命名了

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

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

    @huig 来来来, 兄弟一起干 BA
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3597 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 04:19 · PVG 12:19 · LAX 20:19 · JFK 23:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.