当前位置: 首页 > news >正文

Spring Cloud学习(一)【SpringCloud介绍/服务远程调用】

文章目录

  • 单体架构
  • 分布式架构
  • 微服务
  • 微服务技术对比
  • Spring Cloud 介绍
  • 服务拆分及远程调用


单体架构

单体架构: 将业务的所有功能集中在一个项目中开发,打成一个包部署。

优点:

  • 架构简单
  • 部署成本低

缺点:

  • 耦合度高

在这里插入图片描述

分布式架构

分布式架构: 根据业务功能对系统进行拆分,每个业务模块作为独立项目开发,称为一个服务。

优点:

  • 降低服务耦合
  • 有利于服务升级拓展

在这里插入图片描述

服务治理

在这里插入图片描述

微服务

微服务是一种经过良好架构设计的分布式架构方案,微服务架构特征:

  • 单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责,避免重复业务开发
  • 面向服务:微服务对外暴露业务接口
  • 自治:团队独立、技术独立、数据独立、部署独立
  • 隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题

在这里插入图片描述

总结:

在这里插入图片描述

微服务技术对比

微服务结构

微服务这种方案需要技术框架来落地,全球的互联网公司都在积极尝试自己的微服务落地技术。在国内最知名的就是SpringCloud和阿里巴巴的Dubbo。

在这里插入图片描述

微服务技术对比

在这里插入图片描述

企业需求

在这里插入图片描述

Spring Cloud 介绍

  • Spring Cloud 是目前国内使用最广泛的微服务框架。官网:https://spring.io/projects/spring-cloud
  • SpringCloud集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,从而提供了良好的开箱即用体验:

在这里插入图片描述

  • Spring Cloud 与 Spring Boot 的版本兼容关系如下:

在这里插入图片描述
在这里插入图片描述
SR5=》2.2.x,当 大于 SR5 =》2.3.x

服务拆分及远程调用

服务拆分注意事项

  • 单一职责:不同微服务,不要重复开发相同业务
  • 数据独立:不要访问其它微服务的数据库
  • 面向服务:将自己的业务暴露为接口,供其它微服务调用

远程调用

例: 根据订单id查询订单的同时,把订单所属的用户信息一起返回

在这里插入图片描述

  1. 注册 RestTemplate

在这里插入图片描述

  1. 服务远程调用 RestTemplate
    在这里插入图片描述

提供者与消费者

在这里插入图片描述
注意:一个微服务即可以是提供者也可以是消费者

服务调用关系

  • 服务提供者:暴露接口给其它微服务调用
  • 服务消费者:调用其它微服务提供的接口
  • 提供者与消费者角色其实是相对的
  • 一个服务可以同时是服务提供者和服务消费者

相关文章:

  • springcloud商城源码
  • 数字图像处理 基于numpy库的傅里叶变换
  • 工程(十二)Ubuntu20.04LSD_SLAM运行
  • 计算机毕业设计java+springboot+vue的旅游攻略平台
  • 【广州华锐互动】VR综合布线虚拟实验教学系统
  • 合肥中科深谷嵌入式项目实战——基于ARM语音识别的智能家居系统(一)
  • 二叉树的前序、中序、后序、层序遍历
  • 【深度学习】Yolov8 区域计数
  • HCIE-CCE
  • LeetCode热题100——链表
  • 【Mquant】6:构建价差套利(二)
  • .NET开源全面方便的第三方登录组件集合 - MrHuo.OAuth
  • 活用package.json脚本,用node拷贝文件到指定目录
  • AR眼镜硬件解决方案_AR/VR智能眼镜安卓主板芯片方案介绍
  • 计算机毕设 基于大数据的服务器数据分析与可视化系统 -python 可视化 大数据
  • 【剑指offer】让抽象问题具体化
  • C++入门教程(10):for 语句
  • canvas绘制圆角头像
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • Java的Interrupt与线程中断
  • Making An Indicator With Pure CSS
  • mysql常用命令汇总
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • SQLServer之创建显式事务
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • 包装类对象
  • 产品三维模型在线预览
  • 翻译--Thinking in React
  • 服务器之间,相同帐号,实现免密钥登录
  • 技术:超级实用的电脑小技巧
  • 警报:线上事故之CountDownLatch的威力
  • 两列自适应布局方案整理
  • 深度学习入门:10门免费线上课程推荐
  • 使用agvtool更改app version/build
  • 世界上最简单的无等待算法(getAndIncrement)
  • 手机端车牌号码键盘的vue组件
  • 物联网链路协议
  • 学习笔记:对象,原型和继承(1)
  • 一个项目push到多个远程Git仓库
  • 阿里云ACE认证之理解CDN技术
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • 正则表达式-基础知识Review
  • ​iOS安全加固方法及实现
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • # Panda3d 碰撞检测系统介绍
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • (4)(4.6) Triducer
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (十六)一篇文章学会Java的常用API
  • (四)Controller接口控制器详解(三)
  • (转)菜鸟学数据库(三)——存储过程