编程语言为nodejs
源码涉及相关技术有Express 服务端框架
Redis 队列与缓存
PostgreSQL 数据库
Sequelize 用于 SQL ORM
Angular框架
★背景:
Peertube是一个分布式社交网络平台,在这个平台上我们可以关注很多视频博主的频道,相应的,一个博主也会有很多粉丝(follower)。但是由于是分布式社交平台,博主和粉丝很可能都是处于不同的服务器上。举例:当一个博主有1000个粉丝,他的粉丝都在不同的服务器上,那么他分享视频信息相当于分享给1000个服务器,这会造成网络流量增大。
★需求及目的:
A.改变消息分发规则,进行用户分级,实现网络流量减少的目的。
B.最后要出一份数据报告,展示采用修改后的分发规则相比于原有分发规则能够很大程度减少数据流量,每个服务器发出以及接收的流量减少(total bytes sent and received by each server),也可能还有其他指标要评估。
举例解释:源码是当博主有视频更新时,分享/封面图+视频链接/给他的很多粉丝们;我们需要进行用户分级,区分活跃粉丝和非活跃粉丝,这个区分是动态的,当博主有视频更新时,只发/封面图+视频链接/给活跃粉丝们,对于非活跃粉丝,只发一则通知:类似"某某有视频更新了,请前去查看"。
★核心算法:
动态的用户分级,根据特定规则区分活跃用户以及非活跃用户,改变消息分发规则,不再是全部发送/封面图+视频链接/的模式,而是部分粉丝发/封面图+视频链接/,部分粉丝只发通知,当他们自己感兴趣的时候自己去拉取。
★编程语言:
nodejs
★技术:
由于在分布式社交平台上交流是服务器之间的交流,所以服务器之间的交流是ActivityPub实现的。咱们要改变消息分发规则,实际上是修改Peertube ActivityPub 调用逻辑。