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

微服务

微服务

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

  • 单体架构

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

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

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 //请求参数
)
相关推荐
weixin_3077791330 分钟前
软件演示环境动态扩展与成本优化:基于目标跟踪与计划扩展的AWS Auto Scaling策略
算法·云原生·云计算·aws
q***575043 分钟前
微服务搭建----springboot接入Nacos2.x
spring boot·微服务·架构
weixin_307779132 小时前
基于AWS的应用程序可靠性提升架构优化方案——RDS多可用区与EC2弹性架构实践
数据库·数据仓库·架构·云计算·aws
机智的豆子2 小时前
物联网架构
物联网·微服务
是Yu欸2 小时前
仓颉迁移实战:将 Node.js 微服务移植到 Cangjie 的工程化评测
微服务·云原生·开源·node.js·vim·gitcode·cangjie
hour_go3 小时前
DeepHunt微服务故障定位系统核心技术解析2
微服务·云原生·架构·deephunt
自己的九又四分之三站台4 小时前
PlantUML--结合大模型快速出土
架构
眠りたいです6 小时前
基于脚手架微服务的视频点播系统-脚手架开发部分(完结)elasticsearch与libcurl的简单使用与二次封装及bug修复
c++·elasticsearch·微服务·云原生·架构·bug
2501_915106326 小时前
iOS性能调优的系统化实践,从架构分层到多工具协同的全流程优化指南(开发者深度版)
android·ios·小程序·架构·uni-app·iphone·webview
DogDaoDao6 小时前
大语言模型四大核心技术架构深度解析
人工智能·语言模型·架构·大模型·transformer·循环神经网络·对抗网络