V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wkong
V2EX  ›  程序员

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

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

    单机百万吞吐量的 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   ·   实用小工具   ·   2524 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 15:40 · PVG 23:40 · LAX 07:40 · JFK 10:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.