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

news/2024/11/15 0:58:29/

微服务

  • 微服务
    • SpringCloud
  • 拆分
    • 如何拆分
  • 远程调用

微服务

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

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

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

SpringCloud

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

拆分

  • 创业型项目

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

  • 确定的大型项目

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

如何拆分

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

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

远程调用

如果将一个项目拆分成多个项目,多个项目之间需要进行调用,这时该如何进行调用:
Spring给我们提供了一个RestTemplate工具,可以方便的实现Http请求的发送

  1. 注入RestTemplate到Spring容器中
@Bean
public RestTemplate restTemplate(){return new RestTemplate();
}
  1. 调用其中的方法发起请求:
public <T> ResponseEntity<T> exchange(String url, //请求路径HttpMethod method, //请求方式@Nullable HttpEntity<?> requestEntity,//请求实体,可以为空Class<T> responseType,//返回值类型Map<String,?> uriVariables //请求参数
)

http://www.ppmy.cn/news/1453386.html

相关文章

python制作可执行文件(cython)

使用Cython将Python脚本编译成可执行文件涉及几个步骤。以下是一个基本的指南&#xff1a; 1. 安装Cython 首先&#xff0c;你需要安装Cython。你可以使用pip来安装&#xff1a; pip install cython 2. 编写Cython文件 通常&#xff0c;Cython源文件的后缀是.pyx。你可以将…

Containerd方式部署K8s集群

1.1 Kubernetes基础环境部署 kubernetes有多种部署方式&#xff0c;目前主流的方式有kubeadm、minikube、二进制包 minikube&#xff1a;一个用于快速搭建单节点kubernetes的工具 kubeadm&#xff1a;一个用于快速搭建kubernetes集群的工具 二进制包 &#xff1a;从官网下载…

yarn -v在vscode中报错

前言&#xff1a;积累小知识 1、问题描述 yarn属于类似于npm的安装工具&#xff0c;成功用npm install --global yarn 之后 在cmd终端可以查询yarn的版本号&#xff0c;但是在vscode的终端里却会报错&#xff0c;如下图&#xff1a; 2、解决 分析原因&#xff1a;VSCode的终…

【C++并发编程】(三)互斥锁:std::mutex

文章目录 互斥锁数据竞争C互斥锁lock() 和 unlock()std::lock_guard 互斥锁 数据竞争 在并发编程中&#xff0c;数据竞争是指多个线程同时对共享数据进行读写操作&#xff0c;并且至少有一个线程进行写操作&#xff0c;从而导致未定义的行为或结果。 下面给出一个例子&#x…

Java面试——不安全的集合类

​ 系统性学习&#xff0c;移步IT-BLOG-CN Java 中有许多的集合&#xff0c;常用的有List&#xff0c;Set&#xff0c;Queue&#xff0c;Map。 其中 List&#xff0c;Set&#xff0c;Queue都是Collection&#xff08;集合&#xff09;&#xff0c;List中<>的内容表示其中…

Stable Diffusion AI绘画

我们今天来了解一下最近很火的SD模型 ✨在人工智能领域&#xff0c;生成模型一直是研究的热点之一。随着深度学习技术的飞速发展&#xff0c;一种名为Stable Diffusion的新型生成模型引起了广泛关注。Stable Diffusion是一种基于概率的生成模型&#xff0c;它可以学习数据的潜…

spring框架学习记录(2)

文章目录 注解开发bean相关注解开发定义bean纯注解开发纯注解开发中bean的管理 依赖注入相关依赖注入第三方bean管理第三方bean依赖注入 AOP(Aspect Oriented Programming)面向切面编程AOP简介AOP核心概念AOP工作流程AOP切入点表达式通知类型AOP通知获取数据 注解开发 bean相关…

selenium在Pycharm中结合python的基本使用、交互、无界面访问

下载 下载与浏览器匹配的浏览器驱动文件&#xff0c;这里一定注意的是&#xff0c;要选择和浏览器版本号相同的驱动程序&#xff0c;否则后面会有很多问题。 &#xff08;1&#xff09;浏览器&#xff08;以google为例&#xff09;版本号的查询&#xff1a; 我这里的版本号是1…