# 1. 西瓜视频微服务架构设计
## 1.1 西瓜视频介绍
**西瓜视频**是一个开眼界、涨知识的视频 App(Informative Video Platform),作为国内领先的**中长视频**平台,它源源不断地为不同人群提供优质内容,让人们看到更丰富和有深度的世界,收获轻松的获得感,点亮对生活的好奇心。
同时,**西瓜视频**鼓励多样化创作,帮助人们轻松地向全世界分享视频作品,创造更大的价值。目前平台月活跃创作人超过 320 万,月活跃用户数超过 1.8 亿,日均播放量超过 40 亿,用户平均使用时长超过 100 分钟。
## 1.2 微服务架构设计时关注哪些方面
### 业务域划分
上面四张图分别对应我们的中视频、电商、长视频和作者侧的业务。当然我们的业务场景远不止这些,但是也反映出了C 端场景多,业务域划分较细的特点,因此我们在微服务架构设计的时候需要着重考虑服务划分与解耦,在设计期间我们主要遵循两个原则:
- 单一职责原则:确保每个微服务只负责一个特定的业务功能,避免职责混乱。
- 领域驱动设计:使用领域驱动设计方法来划分服务边界,确保各个服务独立、可复用。
这样设计之后,可以保证:
- 业务模块的独立性:每个微服务可以独立开发、测试、部署和扩展,提升了开发效率和系统的灵活性。
- 技术栈灵活性:不同的微服务可以使用最适合其业务需求的技术栈,不需要统一技术选型。
- 故障隔离:一个服务的故障不会影响其他服务的运行,提高了系统的可用性和稳定性。
- 按需扩展:可以根据每个服务的负载情况独立扩展,优化资源使用和成本。
### 性能
## 1.3 架构设计
上图是西瓜视频整体的微服务架构设计。
从上到下我们分为三层,分别是接入层,业务层和基础组件层。
### 接入层
- 不同的分端:包括西