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

微服务

微服务

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

  • 单体架构

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

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

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 //请求参数
)
相关推荐
whisperrr.1 小时前
【JavaWeb06】Tomcat基础入门:架构理解与基本配置指南
java·架构·tomcat
周杰伦_Jay5 小时前
详细介绍:持续集成与持续部署(CI/CD)技术细节(关键实践、CI/CD管道、优势与挑战)
程序人生·ci/cd·docker·微服务·云原生·容器·人机交互
奕辰杰10 小时前
关于使用微服务的注意要点总结
java·微服务·架构
仇辉攻防10 小时前
【云安全】云原生-Docker(五)容器逃逸之漏洞利用
安全·web安全·网络安全·docker·云原生·容器·安全性测试
Icoolkj10 小时前
微服务学习-服务调用组件 OpenFeign 实战
学习·微服务·架构
言之。13 小时前
【架构面试】一、架构设计认知
面试·职场和发展·架构
karatttt15 小时前
对于RocksDB和LSM Tree的一些理解
java·后端·架构·lsm-tree
露临霜16 小时前
低代码系统-产品架构案例介绍、得帆云(八)
低代码·架构
天下无贼!17 小时前
【技巧】优雅的使用 pnpm+Monorepo 单体仓库构建一个高效、灵活的多项目架构
开发语言·前端·vue.js·react.js·架构·node.js
9527华安19 小时前
技术总结:FPGA基于GTX+RIFFA架构实现多功能SDI视频转PCIE采集卡设计方案
fpga开发·架构·pcie·sdi·gtx·riffa