大家接触过的产品中都是如何实现站内信呢? 我首先想到的是根据接收方的唯一标识放在消息队列,阅读后持久化到数据库
1 taotaodaddy 2019-12-23 08:59:59 +08:00 via Android 同想知道主流实现方案是什么 |
![]() | 2 b821025551b 2019-12-23 09:02:42 +08:00 这么做数据量岂不是一条消息就*用户数了。把用户分组,一组一个消息记录呢? |
![]() | 3 chenset 2019-12-23 09:03:12 +08:00 不是直接持久化在数据库. user id 有索引, 然后通过一个非索引的是否已读标识标记就好了吗? |
4 temp178 2019-12-23 09:04:27 +08:00 via iPhone 大站解决方案有很多,分工明确。 小站一个消息一行数据库记录就 OK 了 |
![]() | 5 sujin190 2019-12-23 09:46:35 +08:00 从系统结构来说,最好不要做成需要两次持久化的,维护太麻烦了,有异常恢复也太费劲,数据小直接放数据库就是了,根本无所谓,量大一点可以先写数据库,接着把未读消息放缓存或队列,有异常也很容易从数据库恢复 |
6 optional 2019-12-23 10:08:59 +08:00 总结起来就是两句话:单播写扩散,广播读扩散。 |
7 whileFalse 2019-12-23 11:22:13 +08:00 可以举出很多用消息队列纯属扯淡的理由…… 1. 消息队列有过期时间br />2. 无法在不查看消息的时候知道有多少条。 3. 为了显示消息,需要查两次:一次消息队列 第二次数据库。 但根本原因是:不应把“未读消息”等同于“未处理消息”。消息队列是存放未处理消息的没错,但那是为了给计算机系统削峰平谷用的,不是给人类当收件箱用的。 |
![]() | 8 yumc OP |