微服务拆分

熟悉黑马商城

服务拆分原则

什么时候拆分?

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

怎么拆分?

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

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

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

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

拆分服务

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

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

服务调用

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

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

总结

什么时候拆分微服务?

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

如何拆分微服务?

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

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

  • 拆分后,某些数据在不同服务,无法直接调用本地方法查询数据
  • 利用RestTemplate发送Http请求,实现远程调用
相关推荐
ESDWAN1 小时前
企业跨境网络合规建设指南:从线路选择到数据出境的全流程方案
网络·架构
MrSYJ1 小时前
别人再问你路由表是啥,这篇文章摔它脸上
docker·云原生·kubernetes
用户5372312882462 小时前
从一句话到水密 STL:给科研工具装 LLM Agent 的安全架构实录
架构
沫璃染墨2 小时前
《从零入门Linux系统篇(五十八):线程篇·十一——线程安全与死锁详解:从可重入到多锁管理》
linux·服务器·开发语言·c++·驱动开发·安全·架构
用户5708462574402 小时前
AI 会话该什么时候重开?一份「上下文卫生」的判断清单
架构
励志不掉头发的内向程序员2 小时前
从鼠标点击到画出一条线:CAD 交互层的状态机设计
后端·架构
运维开发王义杰2 小时前
ingress-nginx 退役后怎么选:Istio、Kong、Traefik 与 APISIX
云原生
bullkingluo2 小时前
从零到一搭建企业级智能问答系统:Ch14 · 三层记忆与断点续跑
架构·llm·agent
400分2 小时前
从零到「机械臂会放试管」:π0.5 VLA 真机部署完全指南(第二节)
人工智能·架构
滑翔的企鹅2 小时前
从真实系统看 CMS 与知识内容平台的架构演进
架构