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

微服务

微服务

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

  • 单体架构

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

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

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 //请求参数
)
相关推荐
液态不合群14 分钟前
AI赋能下的中国低代码市场:从工具革新到产业数字化核心引擎
java·人工智能·低代码·架构
roman_日积跬步-终至千里16 分钟前
【k8s 实战】使用 Helm 在 Minikube 部署 StarRocks(实战避坑指南)
云原生·容器·kubernetes
来一杯龙舌兰20 分钟前
【ELK】Filebeat+Redis+双Logstash架构解析与部署教程(图文)
redis·elk·架构·日志监控
bug攻城狮20 分钟前
Docker高级篇03:Docker微服务实战
docker·微服务·容器
Java练习两年半20 分钟前
互联网大厂 Java 求职面试:探讨微服务与云原生
java·微服务·云原生·面试·技术栈
小小unicorn22 分钟前
[微服务即时通讯系统]语音子服务的实现与测试
c++·算法·微服务·云原生·架构·xcode
液态不合群27 分钟前
低代码融合大模型:对话式UI生成的技术实现与工程落地
android·人工智能·架构·rxjava
云边云科技_云网融合27 分钟前
SD-WAN 专线:为亚马逊云、微软云访问提速的核心逻辑
网络·人工智能·安全·microsoft·架构
你的论文学长44 分钟前
【架构拆解】从 RAG 检索到全局 Linting:如何用工程化思维跑通几万字的自动化写作流?
运维·人工智能·安全·自然语言处理·架构·自动化·ai写作
Maxwell的猫1 小时前
PCIe接口技术深度解析:从发展历程到核心架构
架构·pcie·高速接口·串行总线