代码: https://github.com/coyove/iis
之前的发布: https://v2ex.com/t/628871
时隔一个多月,当初的 todo 基本上都清掉了,代码也重构到了开源出去也不会太丢人的程度 XD。
总的来说这是一个类微博的系统,提供了大部分你所熟知的微博功能。时间线合并( timeline merging )采用读扩散,所以可以轻松的支持热点用户推文分发至海量 follower 的情况。回复 /@/收藏等则是写扩散。
后端采用纯 KV 形式存储,目前有两种实现( dynamodb 和基于本地文件系统)。KV 不要求事务支持,所以理论上任何支持 set(k, v)和 get(k)的 IO 都可以用作存储驱动。( dynamodb 会有 stale read,要解决这个问题需要本地缓存,如 redis )
由于该架构设计特点,(以 dynamodb 为例)当一个账户 follow 的其他账户数目超过 10000 时合并延迟和性能会受比较大影响。但在另一方面,时间线合并的负担绝大部分在客户端,所以对于后端来说没有任何压力。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.