feed 流

Posted by 夏泽民

如何设计Twitter是个经典的面试问题,我们要想一想Twitter的本质是什么,它其实是feed流。那什么是feed流呢?有很多list,这些List的集合就是你最终展现的结果,把一些list集合到一块去就是feed流。这个概念跟Kafka其实是非常相似的,Kafka是按照时间排序把很多log流聚合到一块。除了Twitter,还有很多现在火爆的应用主要功能都涉及到了feed流,比如Facebook、微博、微信朋友圈、Google Reader、今日头条。 比如说在Twitter中,我们有三个feed list,这里需要强调,因为在不同公司不同项目叫法不太一致,我们讲的feed是指单独的list,而list的集合叫timeline,所以timeline是feed的聚合,而每个单独的feed就是一个list。比如说上图中第一列是关于Nelson自己的list,第二列是关于Tim自己的list,第三列是QCon的list,每个人自己的feed可以放一起。



如何设计Twitter

Posted by 夏泽民

如何设计Twitter?此问题同样也可以推广到如何设计Facebook、微博、微信朋友圈等 太阁冯沁原提出的SNAKE原则和九章算法东邪老师提出的4S原则都不能完全体现系统设计的真髓,SNAKE原则缺少了Storage(存储)部分的强调,4S原则缺少对系统参数的计算。在此我想总结两位前辈的经验,提炼出自己对于系统设计原则的理解:4SE原则。



SWRR 算法

Posted by 夏泽民

Smooth Weighted Round-Robin (SWRR) 是 nginx 默认的加权负载均衡算法,它的重要特点是平滑,避免低权重的节点长时间处于空闲状态,因此被称为平滑加权轮询。



LVS

Posted by 夏泽民

https://github.com/alibaba/LVS



tcp-no-delay

Posted by 夏泽民

https://github.com/dastergon/gopheracademy-advent2019-tcp-no-delay https://blog.gopheracademy.com/advent-2019/control-packetflow-tcp-nodelay/



Search

Popular posts

Anything in here will be replaced on browsers that support the canvas element

Recent posts

This blog is maintained by 夏泽民

Get in touch with me at 465474307@qq.com

Subscribe to our mailing list

* indicates required