1.一体化架构的痛点
一体化架构特点:
-
优点
- 开发简单,代码项目集中管理
- 节约维护系统运行的人力
- 排查问题简单
- 方便快速迭代
-
缺点
- 数据库连接数可能成为系统瓶颈(所有的数据库操作都是用一套连接)
- 流量大后不可控制
- 代码耦合导致组织结构的耦合
- 人与人之间的沟通成本太高
- 系统运维影响大
- 提交代码冲突,构建时间,打包上线时间非常不灵活
- 数据库连接数可能成为系统瓶颈(所有的数据库操作都是用一套连接)
针对乘客API的拆分特点(横向拆分)
- 优点
- 代码拆分后,代码清晰了
- 上线更快了,冲突更小
- 可以根据实际情况进行更小粒度的横向扩展
- per-sale机器最多
- post-sale机器最少
- 缺点
- 更难收敛,需要通过biz-common,biz-lib收敛
- 可能导致不统一配置
2.如何使用微服务化解决这些痛点
未拆分
将服务按照业务进行横向拆分:
解决了数据库层面的扩展性问题
拆分思路:
- 按照业务横向拆分
- 按照公共服务抽取出来,下沉为单独的服务
3.总结
- QPS不是拆分的决定性因素
- 资源出现扩展性问题,尤其数据库连接数出现瓶颈
- 维护代码的人多,沟通成本高(上下游)
- 系统部署成本越来越高