nuomiphp
正在加载…
请使用更现代的浏览器并启用 JavaScript 以获得最佳浏览体验。
加载论坛时出错,请强制刷新页面重试。
请教一下聊天消息应该用什么数据库存储?
demon1991yl
mongodb 吧,我们的私信、im 消息目前都是存在 monodb 里面的,规模都是上百亿条,而且根据楼主的描述,数据量 2 亿不算多,存 mongo 的话,也方便后续扩展,,而且基本也是一些在线索引查询。ES 、CK 等对于 TP 类业务实时性不一定能保证
demon1991yl
onlyhuiyi
为啥不接 mongodb 了呢,我们挺多业务再用,还有很多 mysql 转过来的呢
onlyhuiyi
demon1991yl
我也不知道为啥,用的人少,不值得安排人来维护吧。
fengjianxinghun
实时查询用 ES ?都是 ppt 架构师?
fengjianxinghun
fengjianxinghun
还是都是个位数并发?
hahasong
肯定用 hbase 我之前就做过这个。消息都是时序写入,hbase 轻松无压力。只有硬盘到位,永久存都行
microxiaoxiao
2 亿条消息也不大吧,直接存内存相关的数据库吧。持久化随便选一个。200000000*1k/1024/1024/1024=190GB 。图片,视频另外存
tt67wq
热 tidb + 冷 hbase
helloxiaofan
MySQL 不行吗,我们之前每天 400w 左右,可以分库分表
shot
建议参考头部玩家的技术选型,比如 Discord 的数据库迁移历程:MongoDB → Cassandra → ScyllaDB
《 How Discord Stores Billions of Messages 》
> In July, we announced 40 million messages a day, in December we announced 100 million, and as of this blog post we are well past 120 million.
> The messages were stored in a MongoDB ……, we reached 100 million stored messages and…… see the expected issues appearing: the data and the index could no longer fit in RAM and latencies started to become unpredictable.
https://discord.com/blog/how-discord-stores-billions-of-messages
《 Discord Chooses ScyllaDB as Its Core Storage Layer 》
https://www.scylladb.com/press-release/discord-chooses-scylla-core-storage-layer/
cp19890714
首先排除 clickhouse 。clickhouse 主要用于 OLAP ,不适合 OLTP 。并发能力很弱,不适合你的场景。
mongodb 分片、写入并发、数据压缩、数据过期自动清理 都挺适合你的场景。数据量 2 亿真不多。
ES 我只是简单使用过,没有太多了解。不过,实时查询好像不是太快,而且服务器成本比 mongodb 高。
cp19890714
cp19890714
不过,如果要做聊天记录查询,那么全文索引又必然是用 ES 了
defage
clickhouse 肯定是不合适的,这种端上的场景不是 clickhouse 的场景。
数据量级一大,要考虑综合做法,不一定是单个存储。 比如 db 分表+hbase 存详情,用户维度的列表从 db 查,详情回表用 hbase 构建出来。
liuhan907
monkeydream
所以你是要做 IM 消息存储和消息本身的检索?那这个 2E 的量基本随便了吧,拿个 pgsql 硬件规格拉高一些单机大概都够。不放心就找一个分布式数据库一把梭。
guanhui07
tidb
polardb
NoString
hbase
上 clickhouse 不可能的,你可以试试 ck 对并发支持。聊天记录你查详情又不聚合去重计算,选他干啥
lmmlwen
hbase 这些没现成的就没必要,毕竟你一天也就 100w ,只存 6 个月
wellsc
映射存就行了,kv 存消息尸体和 id ,量不大
dog82
IM 要做好非常难,存储只是难点之一
有条件的就买吧,腾讯云、网易云都有 IM 产品
yty2012g
CK 不太 ok ,ck 是 OLAP 引擎,QPS 不能太高,而且关联性能不太行。
第一想法是 ES
WebKit
superbai
云服务厂商的消息不给保存的。保存费用更高。而且定制化太差了
« 上一页
下一页 »