基础功能有三个:1.视频Feed流,支持所有用户刷抖音。2.视频投稿:支持登录用户自己拍视频投稿。3.个人主页:支持查看用户基本信息和投稿列表。方向功能有四个:喜欢列表,用户评论,关系列表,消息。一共七个功能,可以分为七个服务分别实现。
这七个功能服务可以完成基本的访问请求处理,但需要一个api服务对发送来的请求进行分发。七个功能服务在处理请求时需要对请求数据进行处理,那么还需要至少一个数据库服务。总共九个服务就可以基本实现抖音后端项目。
七个功能服务,可以使用任意语言开发,主要涉及到数据库操作和rpc调用,如果是使用go语言,则可以使用gorm和grpc进行快速开发。api服务涉及到网络请求的接收,转发,rpc调用,可以使用web框架进行开发,对于go语言,可以使用gin框架和grpc进行快速开发。数据库,常用的有mysql、mongogo等,可以针对项目的数据类型进行选择开发。
七个服务之间是有一定的相关性的,比如在修改点赞数据的时候,可能会涉及到用户数据和视频数据的修改,在开发时有两种选择:第一种,在修改点赞数据时请求用户和视频功能的服务;第二种,修改点赞数据时,直接修改用户数据和视频数据。第一种调用关系明确,降低了服务间的耦合,但复杂度较高,在小型项目中不推荐。第二种,点赞服务中隐含部分其它服务操作,较为简便,可控性好,但若其它服务发生了改变,本服务也需联动改变。
api服务较为简单,当基础服务功能定义完成时,在api服务中就可以进行形式上的调用,api调用rpc服务时一般不会直接使用硬编码的ip加端口调用,那就需要实现服务注册与发现功能。