微服务拆分

熟悉黑马商城

服务拆分原则

什么时候拆分?

  • 创业型项目:先采用单体架构,快速开发,快速试错。随着规模扩大,逐渐拆分。
  • 确定的大型项目:资金充足,目标明确,可以直接选择微服务架构,避免后续拆分的麻烦。

怎么拆分?

从拆分目标来说,要做到:

  • 高内聚:每个微服务的职责要尽量单一,包含的业务相互关联度高、完整度高。
  • 低耦合:每个微服务的功能要相对独立,尽量减少对其它微服务的依赖。

从拆分方式来说,一般包含两种方式:

  • 纵向拆分:按照业务模块来拆分
  • 横向拆分:抽取公共服务,提高复用性

拆分服务

将hm-service中与商品管理相关功能拆分到一个微服务module中,命名为item-service

将hm-service中与购物车有关的功能拆分到一个微服务module中,命名为cart-service

服务调用

Spring给我们提供了一个RestTemplate工具,可以方便的实现Http请求的发送。使用步骤如下:

  1. 注入RestTemplate到Spring容器
  1. 发起远程调用

总结

什么时候拆分微服务?

  • 初创型公司或项目尽量采用单体项目,快速试错。随着项目发展到达一定规模再做拆分

如何拆分微服务?

  • 目标:高内聚、低耦合。
  • 方式:纵向拆分、横向拆分

拆分后碰到的第一个问题是什么,如何解决?

  • 拆分后,某些数据在不同服务,无法直接调用本地方法查询数据
  • 利用RestTemplate发送Http请求,实现远程调用
相关推荐
贺国亚7 小时前
Multi-Agent与Multi-Task编排架构
架构
张忠琳8 小时前
【SR-IOV cni】(Part 4) SR-IOV Network Device Plugin 3.11.0 — 超深度架构分析
网络·云原生·kubernetes·cni·sriov
Qiuner9 小时前
Pico 重塑Agent时代人与数据交互方式
windows·docker·ai·架构
心之伊始12 小时前
MySQL EXPLAIN 执行计划实战:从 type、Extra 到慢 SQL 定位与优化
java·架构·源码分析·csdn
国科安芯12 小时前
国科安芯推出商业航天级抗辐照全双工 RS485/422 收发器 ASC491S2Y
网络·分布式·单片机·架构·安全性测试
一切皆是因缘际会12 小时前
AI智能新时代
数据结构·人工智能·ai·架构
微三云、小叶14 小时前
新型消费积分商业模式拆解:盈利架构、衰减铸造模型与项目风控要点
架构·软件开发·商业模式·本地生活·商业思维·私域运营
SilentSamsara14 小时前
Python 微服务全链路:gRPC + 链路追踪 + 服务网格接入
开发语言·分布式·python·微服务·架构
candyTong14 小时前
Claude Code 的工具延迟加载机制
架构
葫芦和十三14 小时前
执行拓扑|Agent 不只是会什么,还要怎么跑
架构·agent·ai编程