微服务拆分

熟悉黑马商城

服务拆分原则

什么时候拆分?

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

怎么拆分?

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

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

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

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

拆分服务

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

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

服务调用

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

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

总结

什么时候拆分微服务?

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

如何拆分微服务?

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

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

  • 拆分后,某些数据在不同服务,无法直接调用本地方法查询数据
  • 利用RestTemplate发送Http请求,实现远程调用
相关推荐
万物智能4 小时前
硬件调试三板斧—【万物智能之开源鸿蒙OpenHarmony系统实战开发系列教程】
后端·架构
这个DBA有点耶5 小时前
从MySQL 5.7到8.0:JSON查询性能差在哪?虚拟列索引vs多值索引怎么选
数据库·mysql·架构
Erishen7 小时前
🚀 用 React Three Fiber 造一个会说话的 3D 数字人:从密钥安全到 Serverless 10 秒极限的踩坑全记录
架构·开源·agent
阿里云云原生9 小时前
Agent 观测与优化三城巡演丨第二站深圳精彩回顾 & PPT 下载
云原生
万物智能11 小时前
启动链路与分区—【万物智能之开源鸿蒙OpenHarmony系统实战开发系列教程】
后端·架构
星期一研究室11 小时前
原来知识库,还能这么玩?
微服务·产品·设计
Henry-SAP13 小时前
AI产业迎来标准化与商业化双突破
人工智能·云原生·sap·erp
mldong13 小时前
换了工作流引擎,前端一行代码没改
java·架构
羑悻的小杀马特14 小时前
百度ASR+BRPC+ETCD高并发高可用架构搭建,C++客户端API封装+语音识别子服务注册发现+全链路测试调优终极指南!
架构·sdk·etcd·cmake·百度智能云·brpc·语音识别子服务
九皇叔叔21 小时前
《MySQL 体系架构详解:Server 层、SQL 执行流程与 InnoDB、MyISAM、MEMORY 存储引擎》
sql·mysql·架构