知乎MQ消息推送架构的设计缺陷是啥( 三 )



3:基于用户体验做优先级设计
不要从架构上考虑那么多,基于用户体验做一个优先级设计,比如最简单的,非自己触发动作,用户本身真的那么关心实时性问题么?所以,用户本身触发动作做一个服务,做第一优先p1a1(优先1权限1)的生产发布。然后联动逻辑的通知发布,就做一个次优先p2a1,在这个次优先里保证数据的一致性优先(p2a2)。
最终到了用户面前的时候,自己实时的回答、评论和发布是p1a1的,自己马上可以看到结果。但是对于别的用户来说,你发布的消息是p2a1的,可能会有个xx~ms的延迟。然后用户触发刷新动作的时候,又是p2a2的操作。
也就是保持 自己发布--自己先看到---全系统缓存一致---别的用户看到----自己刷新看到的别的用户内容


所以,从设计上我不觉得做实时性的追求有什么错,但从产品角度上讲,有一些技术问题没那么必要,不是每个用户都是强迫症,开着抓包工具等回复然后非要你实时给他的。

回到这个问题本身也是,太过于追求实时性产生的一致性问题,也可能只有一波程序员在吐槽,对于关键模板群体的多粉用户,反正自己的未读消息是max,也就无所谓准确不准确了。

倒是关于推送多次相同的问题,我有点疑惑,到底是在推送的时候前置了缓存,还是使用了调度计划?????或者并没有做发布订阅??
【MQ消息推送架构的设计缺陷是啥】 因为多次推送这个,是最简单的直接的不满足队列要求的问题。


推荐阅读