熟悉黑马商城
服务拆分原则
什么时候拆分?
- 创业型项目:先采用单体架构,快速开发,快速试错。随着规模扩大,逐渐拆分。
- 确定的大型项目:资金充足,目标明确,可以直接选择微服务架构,避免后续拆分的麻烦。
怎么拆分?
从拆分目标来说,要做到:
- 高内聚:每个微服务的职责要尽量单一,包含的业务相互关联度高、完整度高。
- 低耦合:每个微服务的功能要相对独立,尽量减少对其它微服务的依赖。
从拆分方式来说,一般包含两种方式:
- 纵向拆分:按照业务模块来拆分
- 横向拆分:抽取公共服务,提高复用性
拆分服务
将hm-service中与商品管理相关功能拆分到一个微服务module中,命名为item-service
将hm-service中与购物车有关的功能拆分到一个微服务module中,命名为cart-service
服务调用
Spring给我们提供了一个RestTemplate工具,可以方便的实现Http请求的发送。使用步骤如下:
- 注入RestTemplate到Spring容器
- 发起远程调用
总结
什么时候拆分微服务?
- 初创型公司或项目尽量采用单体项目,快速试错。随着项目发展到达一定规模再做拆分
如何拆分微服务?
- 目标:高内聚、低耦合。
- 方式:纵向拆分、横向拆分
拆分后碰到的第一个问题是什么,如何解决?
- 拆分后,某些数据在不同服务,无法直接调用本地方法查询数据
- 利用RestTemplate发送Http请求,实现远程调用