5. 用 Go 打造现代 IM 之百万消息 QPS 的数据库 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
wkong
V2EX    程序员

5. 用 Go 打造现代 IM 之百万消息 QPS 的数据库

  •  
  •   wkong
    tangtaoit 2023-10-08 08:56:33 +08:00 2749 次点击
    这是一个创建于 766 天前的主题,其中的信息可能已经有所发展或是发生改变。

    单机百万吞吐量的 IM 他的性能瓶颈在哪里?

    瓶颈位置

    IM 最大的数据的读写就是消息,消息的存储是决定此 IM 系统是否有较高的消息吞吐量的主要原因之一

    常见数据库 QPS

    MySQL:QPS 一般 3000-7000 左右 (参考: https://blog.csdn.net/tianya_lu/article/details/105096667

    MongoDB:QPS 一般在 2 万-4 万左右 (参考: https://blog.csdn.net/sunny_day_day/article/details/108578995

    Redis:QPS 一般是 10 万-20 万左右

    问题分析

    传统的 MySQL QPS 太低,显然不太适合消息这种读写太频繁的场景。

    MongoDB 虽然比 MySQL QPS 高不少,但是还远远没有达到我们的预期。

    Redis 已经接近了我们的预期,但是 Redis 是内存数据库,不适合存大量的消息,并且有丢消息的概率。

    理想中的数据库

    是否有一款数据库比 Redis 的 QPS 还要高并且不会丢消息又像 MySQL 一样适合多维度查询的数据库?

    我们的开源 IM

    悟空 IM (通讯层): https://github.com/WuKongIM/WuKongIM

    唐僧叨叨(业务层): https://github.com/TangSengDaoDao/TangSengDaoDaoServer

    下一篇:6. 用 Go 打造现代 IM 之自研消息数据库一

    6 条回复    2023-10-08 16:24:45 +08:00
    stardew
        1
    stardew  
       2023-10-08 09:35:39 +08:00
    牛的
    cheng6563
        2
    cheng6563  
       2023-10-08 09:51:20 +08:00
    意义不明的帖子,求助?技术分享?软件推广?
    写入性能不是看 TPS 吗
    MySQL 测试贴 "硬盘写入速度在 17M/s , 感觉还没到瓶颈,7200 转机械硬盘的是 90M" 不知道从哪吐槽
    root71370
        3
    root71370  
       2023-10-08 11:06:30 +08:00
    软件推广罢了
    pkoukk
        4
    pkoukk  
       2023-10-08 11:12:54 +08:00
    额..IM 为什么要高 QPS ?聊天记录不是一般都存在客户端么
    jimrok
        5
    jimrok  
       2023-10-08 11:14:37 +08:00
    做 IM 真是卷上天了,一块骨头被一群开源啃了好几遍,每个都说这里有肉。
    zhouhuab
        6
    zhouhuab  
       2023-10-08 16:24:45 +08:00
    盲猜 foundationdb
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5569 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 06:32 PVG 14:32 LAX 22:32 JFK 01:32
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86