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

查看 24|回复 0
作者:wkong   
单机百万吞吐量的 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 之自研消息数据库一
您需要登录后才可以回帖 登录 | 立即注册

返回顶部