知乎MQ消息推送架构的设计缺陷是啥( 二 )
https://www.zhihu.com/api/v4/default-notifications
带上我的token以后
可以看到内容
比如 DCjanus的这个回复,id就是
"id": 315041878,
"is_delete": false, 看这里,那个臭名昭著的评论删了还有一个提示,大概就是这个标志位的锅
"url": "http://www.zhihu.com/api/v4/comments/315041878",
"content": "\u0026lt;p\u0026gt;APP端使用了SSL pinning技术,没法抓包,网页端不太清楚,一直没看到轮询,应该走的WS,就没关注了。\u0026lt;/p\u0026gt;",
基本上你不用暴库,一点点就能知道的数据结构
"count": 1,
"comment": {
"allow_reply": true,
"collapsed": false,
"allow_vote": true,
"featured": false,
"reviewing": false,
"created_time": 1501853870,
"allow_like": true,
"is_author": false,
"can_recommend": true,
"id": 315041878,
"is_delete": false,
"url": "http://www.zhihu.com/api/v4/comments/315041878",
"content": "\u0026lt;p\u0026gt;APP端使用了SSL pinning技术,没法抓包,网页端不太清楚,一直没看到轮询,应该走的WS,就没关注了。\u0026lt;/p\u0026gt;",
"allow_delete": true,
"can_collapse": true,
"type": "comment",
"resource_type": "answer"
},
比如这个是我的识别码
"type": "people",
"name": "萝魏紫",
"url": "用户", -当然我改掉了几位
"is_advertiser": false,现在我们知道了,会给你一个标志,你是不是做广告的 LOL,我这种良民当然是false啦
这个返回值里面值得分析的东西非常多。
我看你们那些写爬虫的,还是仔细研究研究现代科技吧,明明自己的API什么都告诉你了,你还在HTML元素里面做体力活呢。。。。。
■网友
每次新关注一个大V之后,接下来几天就要被他的回答刷屏了…点开一看全都是前几个月的蛋疼,关注一个人之前要纠结半天
■网友
我觉得是设计余量问题,也就是说出发点本身考虑到健壮性做了设计,但确实有一些性能性问题来使得这个设计本身冗余。
应该是基于soa的触发式发布,触发动作作为生产者队列发布,然后实时状态的告诉缓存和client一起作为消费者(当然也有可能不是,因为这个系统内部交互也是海量的)。
(如果有谁知道是不是可以告诉我一下,因为具体的后端架构未知,那么问题发生的各种可能性太多)
但是client本身应该跟缓存系统有一定的非一致性问题,然后在用户使用过程中,因为生产者是第一优先的,所以如果有回答有变动肯定会第一时间收到推送通知,反而是用户主动触发获取缓存信息的时候,因为缓存可能跟client的订阅动作不一致(timeline啊,失败重载啊),发生推送和状态模型有实时性不一致的问题。
我觉得所有考虑到实时性的系统,最简单的思路都是1:加资源 2:加层 3:基于用户体验做优先级
(没有什么是加一层解决不掉的,如果有,就加2层)
1 :加资源
这个没的说,烧钱就好,全部应用都内存驻流,所有流转环节全部告诉缓存化
2:加层
既然是缓存和client有一致性问题了,但最起码确定生产者这里是没问题的,那么再前置一个缓存(或者队列)做一致性校验,一致性校验还不够,那就再前置一个队列做调度分配(2次分配)。
推荐阅读
- ■个税扣缴新方式来了!对年收入不超过6万元的人来说是个好消息
- 为啥知乎上普便有一种【我在北上广深打工,所以拥有更好的视野】这样的错觉
- 骨裂|
- 知乎有没有必要增加一个特别关注功能
- SUV|小道消息传大众将在美国和欧洲停售帕萨特,这是几个意思?
- 就业政策|
- 怎样评价3月10日起外资企业不能在中国大陆提供视听服务这一消息
- 知乎上关于人生经验的介绍是否可能对青少年造成潜在危害
- 像知乎豌豆夹这种新兴互联网公司发展的实际状况咋样
- 只看报纸、杂志、知乎、微博等文字而很少阅读书籍的人,和喜欢看书的延迟接受信息的人,哪种会比较优秀呢
