摘要:
NSQ 源码剖析, 非常详细 阅读全文
摘要:
需实现接口. Put: 存入k-v, 此方法不会阻塞, 时刻都可以立即执行并返回. Get: 读取一个 k-v, 如果 key 不存在则阻塞, 等待 key 存在或者超时. 阅读全文
摘要:
Gin 源码剖析 阅读全文
摘要:
sync.Map 整体设计思路 互斥量 mu 保护 read 和 dirty。 read 是 atomic.Value 类型,可以并发地读。但如果需要更新 read,则需要加锁保护。对于 read 中存储的 entry 字段,可能会被并发地 CAS 更新。但是如果要更新一个之前已被删除的 entry 阅读全文
摘要:
视频流系统设计 设计 Youtube Scenario 月活跃用户(MAU): 20亿 日活跃用户(DAU): 1.5亿 每天观看视频数量: 50亿 每分钟上传视频时长: 500个小时 用户平均观看时间: 40分钟 Service 上传服务 Upload Service 缩略图服务 Thumb Se 阅读全文
摘要:
聊天系统设计 设计微信: Work Solution Real-time Service Online Status: Pull vs Push 相关设计题: Design Facebook Messenger Design WhatsApp Design Facebook Live Comment 阅读全文
摘要:
协同编辑系统设计 Scenario 协同合作 Service + Storage 实时系统 (real time application) 游戏 聊天 (wechat, whatsapp, messager) 股票交易 (robinhood, webull) 协同合作 (google docs) 实 阅读全文
摘要:
短网址设计 Scenario 需求 Apply Short URL graph LR A(用户) --> |http://www.jiuzhang.com| B(http://bit.ly) B --> |http://bit.ly/1UloQB6| A 根据 Short URL 还原 Long U 阅读全文
摘要:
用户系统设计 4S Scenario 注册, 登录, 查询, 用户信息修改 支持 100M DAU 注册, 登录, 信息修改 QPS 约 100M * 0.1 * 3 / 86400 = 300 0.1 = 平均每个用户每天登录 + 注册 + 信息修改 查询 QPS 约 100M * 100 * 3 阅读全文
摘要:
新鲜事系统设计 Twitter, 朋友圈 新鲜事系统的核心因素? 关注与被关注, 每个人看到的新鲜事都是不同的. Pull Model 算法: 在用户查看 New Feed 时, 获取每个好友的前 100 条 Tweets, 合并出前 100 条 News Feed. (K 路归并算法) 复杂度分析 阅读全文