1. 初始认识 Spring Cloud

1. 初始认识 Spring Cloud

文章目录

  • 1. 初始认识 Spring Cloud
  • 前言
  • 2. Spring Cloud 基本介绍
  • 3. 系统架构的演变过程
    • 3.1 单机架构
    • 3.2 动静分离架构:静态缓存 + 文件存储
    • 3.3 分布式架构:业务拆分 + 负载均衡
    • 3.4 微服务架构:使用 Spring Cloud
  • 4. Spring Cloud 全面说明
    • 4.1 Spring Cloud 和 Spring Boot 版本对应关系
    • 4.2 Spring Cloud 组件选型
  • 5. Spring Cloud Alibaba 基本介绍
  • 6. 分布式微服务技术选型
    • 6.1 Spring Cloud 原生组件的几大缺点
    • 6.2 Spring Cloud Alibaba 的优势
    • 6.3 分布式微服务技术选型建议
  • 8. 最后:


前言

  • 对应上一篇学习内容:🌟🌟🌟
  • 对应下一篇学习内容:🌟🌟🌟 2. Spring Cloud 微服务基础环境搭建-CSDN博客

2. Spring Cloud 基本介绍

Spring Cloud 官方文档地址:https://spring.io/projects/spring-cloud

在这里插入图片描述

在学习 Spring Cloud 微服务技术之前,我们可以先来思考一个问题:

如果没有微服务技术,是不是程序员就不能开发大型项目了?

答案是:可以的。我们可以对于大型项目进行模块化划分,对各个模块进行实现,模块之间更多的是通过 API 调用完成,耦合度较高 ,不利于扩展和维护,其实,在以前是没有微服务技术的时候,很多大型项目就已经使用了微服务的概念,只是当时不叫微服务 。但用的就是微服务的思想。随着时代的发展,微服务越来越重要,就被我们的 Spring 公司进行了一个开源的整合,定义的行业的规范,叫做为了现在的微服务技术

**目前典型的微服务技术是:“Spring Cloud”和“Spring Cloud alibaba” ** 。

标准的微服务解决方案:“Spring Cloud”和“Spring Cloud alibaba” 出现的原因和带来的价值:

  1. 微服务可以根据业务不同,将一个大项目,分解成**不同的服务(微服务:比如:{搜索服务,网关服务,配置服务,存储服务,发现服务等})
  2. 各个服务器通过分布式方式进行工作,从而可以高效,快速,稳定的 完成复杂的功能。
  3. 换句话说:就是将原来的大项目的某些模块,抽出形成微服务,配合分布式工作方式 ,从而高效,快速,稳定的完成复杂业务。

下面我们以搜狐的网站,构建绘制一个简单的理解的示意图:

在这里插入图片描述

根据上述示图情况;Spring 社区,大旗一挥,整合优质组件:

特别说明:Spring 整合的优质组件主要分为三大类:NetFlix,Alibaba,自己Spring社区开发的

  1. 在高并发时,解决服务熔断降级 问题,保证系统的高可用性
  2. 在服务器集群时,要解决负载均衡问题
  3. 在复杂的网络情况下,要保证数据存储的稳定性一致性
  4. 提供网关服务。
  5. 等等其它技术问题

在这里插入图片描述

3. 系统架构的演变过程

3.1 单机架构

简单是说:就是少量用户,单个服务器配置。

在这里插入图片描述

3.2 动静分离架构:静态缓存 + 文件存储

在这里插入图片描述

3.3 分布式架构:业务拆分 + 负载均衡

在这里插入图片描述

3.4 微服务架构:使用 Spring Cloud

在这里插入图片描述

img


4. Spring Cloud 全面说明

“微服务” 一词源于 Martin Fowler 的名为 Microservices 的博文,简单地说,微服务是系统架构上的一种设计风格,它的主旨是将一个 原本独立的系统拆分成多个小型服务 ,这些服小型服务都在各自独立的进程中运行,服务之间通过基于HTTPRESTful API 进行通信协作。

被拆分成的每一个小型服务都围绕着系统中的某一项或一些耦合度较高的业务功能进行构建,并且每个服务维护着自身的数据存储,业务开发,自动化测试案例以及独立部署机制。由于有轻量级的通信协作基础,所以这些微服务可以使用不同的语言来编写,但是这里我们进行学习的是使用Java语言

Spring Cloud 全面说明:

  1. Spring Cloud 来源于 Spring ,是更高层次的,架构视角的综合性大型项目,目标宗旨在 “在构建一套标准化的微服务解决方案,让架构师在使用微服务理念构建系统时,面对各个环节的问题都可以找到相应的组件来处理”
  2. Spring Cloud 是 Spring 社区为为微服务架构提供的一个 “全家桶” 套餐。套餐中各个组件之间的配合,可以减少在组件的选型和整合上花费的精力,可以快速构建起基础的微服务架构系统,是微服务架构的最佳落地方案。
  3. Spring Cloud 天然支持 Spring Bood(各自之间都存在对应的要求的版本),使用门槛较低
  4. 解决与分布式系统相关的复杂性:网络问题,延迟开销,贷款问题,安全问题。
  5. 处理服务发现的能力:服务发现允许集群中的进程和服务找到彼此并进行通信
  6. 解决冗余问题:冗余问题经常发生在分布式系统中
  7. 解决负载平衡:改进跨多个计算资源:例如:计算机资源,网络连接,中央处理单元的工作负载分布。

Spring Cloud 核心组件图: 官网文档地址:https://spring.io/projects/spring-cloud

在这里插入图片描述

在这里插入图片描述

Spring Cloud Alibaba 文档地址: https://github.com/alibaba/spring-cloud-alibaba

在这里插入图片描述

Spring Cloud Alibaba 中文版文档地址: https://github.com/alibaba/spring-cloud-alibaba/blob/2023.x/README-zh.md

在这里插入图片描述

Spring Cloud Netflix 官网地址: https://github.com/Netflix

在这里插入图片描述

Spring Cloud 核心组件:

在这里插入图片描述

在这里插入图片描述

Spring Cloud 分布式示意图:

Spring Cloud 分布式示意图:官网地址:https://spring.io/microservices

在这里插入图片描述

Spring Cloud 是微服务的落地

Spring Cloud 体现了微服务的弹性设计

微服务的工作方式一般式基于分布式的

Spring Cloud 仍然是 Spring 家族一员,可以解决微服务的分布式工作方式带来的各种问题

Spring Cloud 提供很多组件,比如:服务发现,负载均衡,链路中断,分布式追踪和监控,甚至提供 API gateway 功能。

4.1 Spring Cloud 和 Spring Boot 版本对应关系

关于 Spring Cloud 和 Spring Boot 版本对应关系的,官方地址如下:https://spring.io/projects/spring-cloud

在这里插入图片描述

4.2 Spring Cloud 组件选型

特别说明:对应打上了 ✔️ 的表示,推荐使用的组件,而对应打上 ❌ 的,则是表名不建议使用该组件。换一种。

在这里插入图片描述

5. Spring Cloud Alibaba 基本介绍

Spring Cloud Alibaba 的官方文档:https://github.com/alibaba/spring-cloud-alibaba

在这里插入图片描述

Spring Cloud Alibaba 的官方中文文档:https://github.com/alibaba/spring-cloud-alibaba/blob/2023.x/README-zh.md

在这里插入图片描述

Spring Cloud Alibaba 主要的功能如下:

  • 服务限流降级:默认支持 WebServlet、WebFlux、OpenFeign、RestTemplate、Spring Cloud Gateway、Dubbo 和 RocketMQ 限流降级功能的接入,可以在运行时通过控制台实时修改限流降级规则,还支持查看限流降级 Metrics 监控。
  • 服务注册与发现:适配 Spring Cloud 服务注册与发现标准,默认集成对应 Spring Cloud 版本所支持的负载均衡组件的适配。
  • 分布式配置管理:支持分布式系统中的外部化配置,配置更改时自动刷新。
  • 消息驱动能力:基于 Spring Cloud Stream 为微服务应用构建消息驱动能力。
  • 分布式事务:使用 @GlobalTransactional 注解, 高效并且对业务零侵入地解决分布式事务问题。
  • 阿里云对象存储:阿里云提供的海量、安全、低成本、高可靠的云存储服务。支持在任何应用、任何时间、任何地点存储和访问任意类型的数据。
  • 分布式任务调度:提供秒级、精准、高可靠、高可用的定时(基于 Cron 表达式)任务调度服务。同时提供分布式的任务执行模型,如网格任务。网格任务支持海量子任务均匀分配到所有 Worker(schedulerx-client)上执行。
  • 阿里云短信服务:覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道。

6. 分布式微服务技术选型

6.1 Spring Cloud 原生组件的几大缺点

  1. Spring Cloud 部分组件停止维护和更新,给开发带来不便。
  2. Spring Cloud 部分环境搭建复杂,没有完善的可视化界面,我们需要大量的二次开发和定制。
  3. Spring Cloud 配置复杂,难以上手

6.2 Spring Cloud Alibaba 的优势

  1. 阿里使用过的组件经历了考验高并发,高性能,高可用 ,性能强悍,设计合理,现在开源出来供大家使用。
  2. 搭配完善的可视化界面,给开发运维带来极大的便利搭建简单,学习曲线低。

6.3 分布式微服务技术选型建议

  1. Spring Cloud Alibaba 组件为主
  2. Spring Cloud 为辅,比如:
    1. SpringCloud-Ribbon:负载均衡
    2. SpringCloud-OpenFeign:调用远程服务
    3. SpringCloud-GateWay:API网关
    4. SpringCloud-Sleuth:调用链监控等

8. 最后:

“在这个最后的篇章中,我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉,我从你们身上吸取了无尽的灵感与勇气。我会将你们的鼓励留在心底,继续在其他的领域奋斗。感谢你们,我们总会在某个时刻再次相遇。”

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/14484.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

网络学习第四篇

引言: 我们在第三篇的时候出现了错误,我们要就行排错,那么我们要知道一下怎么配置静态路由实现ping通,这样子我们才知道下一跳到底是什么,为什么这样子做。 实验目的 理解和掌握静态路由的基本概念和配置方法。 实…

【rf】robotframework自动化测试环境搭建

robotframework自动化测试环境搭建 前言: 1、在2019年之前,robotframework-ride的版本一直是1.5.2.1,是2016年1月份的版本,只能安装在python2.7的环境上,导致如果想同时使用robotframework做测试且又需要python3环境…

opencv入门学习总结

opencv学习总结 不多bb,直接上代码!!! 案例一: import cv2 # 返回当前安装的 OpenCV 库的版本信息 并且是字符串格式 print(cv2.getVersionString()) """ 作用:它可以读取不同格式的图像文…

《DiffusionDet: Diffusion Model for Object Detection》ICCV2023

摘要 本文提出了一种新的框架DiffusionDet,它将目标检测任务表述为从带噪声的边界框到目标边界框的去噪扩散过程(如图一所示)。在训练阶段,目标边界框逐渐扩散到随机分布,模型学习逆转这一加噪过程。在推理阶段&#…

加深深度学习矩阵计算理解--用人类直觉 走进线性代数(非应试)

文章目录 前言一、向量二、线性组合、空间与基三、矩阵和线性变换四、矩阵乘法与线性变化复合1、矩阵乘法代表线性变换的复合2、实例说明 五、三维空间的线性变换1、基本性质2、直觉理解3、矩阵表示 六、行列式一、行列式的定义2、行列式在空间中的抽象理解 七、逆矩阵 列空间秩…

AIGC学习笔记(5)——AI大模型开发工程师

文章目录 AI大模型开发工程师004 垂直领域的智能在线搜索平台1 智能在线搜索平台需求分析大模型不够“聪明”增强大模型的方式需求分析2 智能在线搜索平台方案设计方案设计技术选型大模型版本GLM-4大模型注册使用Google Cloud平台注册创建可编程的搜索引擎3 智能在线搜索平台代…

【C++滑动窗口】1234. 替换子串得到平衡字符串|1877

本文涉及的基础知识点 C算法:滑动窗口及双指针总结 LeetCode1234. 替换子串得到平衡字符串 有一个只含有 ‘Q’, ‘W’, ‘E’, ‘R’ 四种字符,且长度为 n 的字符串。 假如在该字符串中,这四个字符都恰好出现 n/4 次,那么它就…

源码分享-Springboot+Vue大学生社团活动平台附源码,sql文件,配套论文

源码获取: 复制链接到浏览器打开即可领取 夸克网盘领取链接:https://pan.quark.cn/s/187d2ca0e3ec 百度网盘领取链接:https://pan.baidu.com/s/1apbO6k1cEqFXV-USf0I2IA?pwdccaj 提取码: ccaj 1.1课题背景及意义 随着现代网络技术发展&#xff0…

南山前海13元一份的猪脚饭

​今天没有带饭,中午打算去中国国有资本资本风投大厦的工地餐点吃个打工餐。 ​快到工地餐点就看到不少工友已经开始津津有味吃饭了哈。其实树下也有很多小鸟在觅食,可能是找一些剩饭吃的样子,大部分是麻雀为主。​ ​肚子有些饿,…

C++builder中的人工智能(29):如何在Windows项目中导入FANN库

这篇文章旨在使用由Steffen Nissen开发的FANN库实现人工神经网络。FANN库支持20多种编程语言,包括Delphi和C Builder。您可以在FANN的官方网站上找到完整信息和文档,并下载FANN的源文件。 步骤: 下载FANN库: 从Nissen的官方网站下…

Java开发人员学习ArkTs笔记(二)-函数与类

大家好,我是一名热爱Java开发的开发人员。目前,我正在学习ARKTS(Advanced Java Knowledge and Technology Stack),并将不断输出我的学习笔记。我将在这里分享我学习ARKTS的过程和心得,希望能够为其他开发人…

maven环境搭建

maven基本知识 https://blog.csdn.net/qq_41187116/article/details/125955085?spm1001.2014.3001.5502 maven环境搭建 maven软件下载 不要去官网下,慢~ 直接相信清华大学吧: https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.9.9/bin…

jmeter常用配置元件介绍总结之线程组

系列文章目录 安装jmeter jmeter常用配置元件介绍总结之线程组 1.线程组(用户)1.1线程组1.1.setUp线程组和tearDown线程组1.2.Open Model Thread Group(开放模型线程组)1.3.bzm - Arrivals Thread Group(到达线程组)1.4.jpgc - Ultimate Thread Group(终极线程组)1.5.jpgc - St…

八 Bean的生命周期

八、Bean的生命周期 8.1 什么是Bean的生命周期 Spring其实就是一个管理Bean对象的工厂。它负责对象的创建,对象的销毁等。 所谓的生命周期就是:对象从创建开始到最终销毁的整个过程。 什么时候创建Bean对象? 创建Bean对象的前后会调用什…

【入门篇】桃园结义【算法赛】——多语言版

题目跳转 python import os import sys# 请在此输入您的代码 print(3)C #include <stdio.h> #include <stdlib.h>int main(int argc, char *argv[]) {printf("%d",3);return 0; }C #include <iostream> using namespace std; int main() {// …

速看!!!24下软考系统分析师综合知识真题回忆,考点已更新

2024下半年软考考试已经结束了&#xff0c;为大家整理了网友回忆版的系统分析师真题及答案&#xff0c;总共30道题左右。 下半年考试的宝子们可以对答案预估分数&#xff01;准备明年考的宝子可以提前把握考试知识点和出题方向&#xff0c;说不定会遇到相同考点的题目&#xff…

HarmonyOS NEXT:模块化项目 ——修改应用图标+启动页等

涉及官方文档 应用配置文件应用/组件级配置图标资源规范 涉及到app.json5配置文件和module.json5配置文件 1、 icon和label的校验。 IDE从5.0.3.800版本开始&#xff0c;不再对module.json5中的icon和label做强制校验&#xff0c;因此module.json5与app.json5只需要选择其一…

dolphinscheduler

dolphinscheduler 官网地址&#xff1a; https://dolphinscheduler.apache.org/zh-cn/docs/3.2.1/about/hardware 1. 概念&#xff1a;dolphinscheduler是一个功能强大的开源调度系统&#xff0c;专为管理和调度大规模数据处理任务设计。 2. 特点&#xff1a; 分布式架构、支持…

Transformer-BiLSTM、Transformer、CNN-BiLSTM、BiLSTM、CNN五模型多变量回归预测

Transformer-BiLSTM、Transformer、CNN-BiLSTM、BiLSTM、CNN五模型多变量回归预测 目录 Transformer-BiLSTM、Transformer、CNN-BiLSTM、BiLSTM、CNN五模型多变量回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 吐血售&#xff01;聚划算&#xff01;Transforme…

【C++】C++11特性(上)

✨✨欢迎大家来到Celia的博客✨✨ &#x1f389;&#x1f389;创作不易&#xff0c;请点赞关注&#xff0c;多多支持哦&#x1f389;&#x1f389; 所属专栏&#xff1a;C 个人主页&#xff1a;Celias blog~ 目录 一、列表初始化 二、std::initializer_list 三、右值引用和移…