【微服务 开发】微服务介绍,服务拆分,远程调用

微服务

微服务

微服务是一种软件架构风格,它是以专注于单一职责的很多小型项目为基础,组合成复杂的大型应用

  • 单体架构

将业务的所有功能集中在一个项目中进行开发,打成一个包部署

微服务的特征:
粒度小,团队自治,服务自治

SpringCloud

SpringCloud是目前国内使用最广泛的微服务框架,SpringCloud集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配

拆分

  • 创业型项目

先采用单体架构,快速开发,随着规模扩大逐渐拆分

  • 确定的大型项目

可以直接选择微服务架构,避免拆分麻烦

如何拆分

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

从拆分方式来说,一般分为:
纵向拆分:按照业务模块进行拆分
横向拆分:抽取公共服务,提高复用性

远程调用

如果将一个项目拆分成多个项目,多个项目之间需要进行调用,这时该如何进行调用:

Spring给我们提供了一个RestTemplate工具,可以方便的实现Http请求的发送

  1. 注入RestTemplate到Spring容器中
java 复制代码
@Bean
public RestTemplate restTemplate(){
    return new RestTemplate();
}
  1. 调用其中的方法发起请求:
java 复制代码
public <T> ResponseEntity<T> exchange(
         String url, //请求路径
         HttpMethod method, //请求方式
         @Nullable HttpEntity<?> requestEntity,//请求实体,可以为空
         Class<T> responseType,//返回值类型
         Map<String,?> uriVariables //请求参数
)
相关推荐
黄华SJ520it14 小时前
二二复制定点裂变双轨商城系统开发:原理、架构与实战指南
运维·小程序·架构·系统开发
混沌福王14 小时前
三端统一的应用架构 —— 《从零构建 7×24 小时 AI Agent》第二章
架构
YuePeng14 小时前
不写一行接口,让 DBeaver 直连你的指标层——背后只用了一个端口
后端·架构·github
QYR-分析15 小时前
RISC-V AI加速器SoC行业研究报告:开放架构赋能AI芯片,高增赛道开启国产化新机遇
人工智能·架构·risc-v
xiaoxiangsiyan15 小时前
LNMP + Redis Sentinel 高可用架构部署手册(续)
运维·网络·数据库·redis·缓存·架构·sentinel
NutShell Wang16 小时前
每帧重建整条路径、每秒倾倒 48MB 给 GC:实时折线图渲染架构的实测复盘
前端·性能优化·架构·图形渲染·数据可视化·vibe coding
阿里云云原生16 小时前
金融级 AI 原生架构:FinXScope 如何解决智能体从 Demo 到生产的“最后一公里”?
人工智能·金融·架构·agentscope·finxscope
BerryS3N16 小时前
Java在人工智能与大模型时代的深度演进:从工程落地、高性能计算到企业级Agent与RAG架构实战指南
java·人工智能·架构
绘梨衣54716 小时前
水质月报爬虫解析架构选型:动态表头映射为主 + 字段覆盖率监控为辅(工程复盘)
爬虫·架构
码云之上17 小时前
Prompt Engineering:从提示词文案到 Agent 行为契约
人工智能·架构·前端工程化