记一次服务拆分流程,这里只是记录思路,不讨论细节
一、拆分理论基础
二、核心业务流程-服务划分
问题点:
- 如何鉴权:所有服务都集成鉴权 sdk,需要的时候添加注解
- 所有服务可以对外提供服务吗?所有服务都可以对外提供接口,提供admin/api/rest/rpc接口
- 上课端单独一个上课服务,保证上课链路不受其他模块影响
- admin和api如何隔离
- 安全方面用登录态隔离
- 可用性要求高的服务通过域名路由到不同部署实例隔离
- 暂时不要聚合查询服务,页面查询分散到招生和教务模块
- 面向渠道/官网/通用配置/落地页不需要单独划分系统,如果请求量高的情况下,对应服务进行横向扩容
- 课节状态的维护,由哪个服务负责,课节状态由课程服务维护
- 如何合理隔离声网的接口(依赖)
- 课堂答题/互动的相关依赖接口,是否需要单独拆分,单独拆分
- 跨服务的数据信息填充,究竟在哪里填充?填充逻辑和聚合逻辑在一起,在哪里聚合就在哪里填充
三、拆分步骤
- 独立的服务可以单独拆分
- 先定好服务边界,同一个进程内,按定好服务划分,把服务调用关系规范起来,把进程间接口定义清楚
- 梳理出服务依赖关系,确定服务改造顺序
- 制定:战略决心
四、部署架构/新旧架构兼容/流量路由