Go语言实战流媒体视频网站笔记3:流媒体网站架构以及API模块的实现1
流媒体点播网站
- GO是一门网络编程语言
- 视频网站包含Go在实战项目中的绝大部分技能要点
- 优良的native http库以及模板引擎(无需任何第三方框架)
总体架构
典型的前后端分离的服务,后端用API来连接前端。
API会将一些业务的数据往DB里面写,同时会将一些业务的处理比如说视频的播放,上传下载请求送到Streaming模块里面,Scheduler会处理一些删除,软删除,定期清理一些。
Streaming和Scheduler都会同时访问DB,会直接去文件系统里面找视频文件做相应的处理。
什么是前后端解耦
- 前后端解耦是时下流行的web网站架构
- 前端页面和服务通过普通的web引擎渲染
- 后端数据通过渲染后的页面脚本调用后处理和呈现
前后端解耦的优势
- 解放生产力,提高合作效率
- 松耦合的架构更灵活,部署更方便,更符合微服务的设计特征
- 性能的提升,可靠性的提升
前后端耦合的缺点
- 工作量大
- 前后端分离带来的团队成本以及学习成本
- 系统更复杂
API
- REST API
- REST是一种设计风格,不是任何架构标准
- 当今RESTful API通常使用HTTP作为通信协议,JSON作为数据格式
API特点
- 统一接口(Uniform Interface)
- 无状态(Stateless)
- 可缓存(Cacheable) 减少后端服务的压力
- 分层(Layered System) 将一个API的servers 分成很多层很多个服务,每一层次负责一部分功能
- CS模式(Client-server Atchitecture)
API设计原则
- 以URL(统一资源定位符) 风格设计API
- 通过不同的METHOD(GET,POST,PUT,DELETE)来区分对资源的CRUD。用METHOD来区分对资源的不同操作
- 返回码(Status Code ) 符合HTTP资源描述的规定 ( 404 找不到页面等)可读性
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 赛 の 任意门!
评论
ValineGitalk