Spring Cloud 和3种架构分析 以及微服务的详细分析和示意图

news2024/11/24 4:58:41

目录

SpringCloud & SpringCloud Alibaba架构介绍

Spring Cloud 基本介绍

官方文档

提出问题, 引出微服务

 单机架构

- 示意图

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

解析

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

 解析

 微服务架构:使用Spring Cloud

 解读:

Spring Cloud 全面说明(重要)

Spring Cloud 核心组件图

spring cloud 核心组件一览图

一图胜千言 

 Spring Cloud 分布式示意图

一图胜千言

Microservice resilience with Spring Cloud

解读

SpringCloud 和SpringBoot 版本对应关系

Spring Cloud 组件选型

- 一图胜千言 

 Spring Cloud Alibaba 基本介绍

 官方文档

Spring Cloud Alibaba 是什么

 主要功能一览

Spring Cloud Alibaba 核心组件

分布式微服务技术选型

● Spring Cloud 原生组件的几大痛点

● Spring Cloud Alibaba 的优势

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


SpringCloud & SpringCloud Alibaba架构介绍

Spring Cloud 基本介绍

官方文档

地址: https://spring.io/projects/spring-cloud

提出问题, 引出微服务

1、先思考一个问题, 没有微服务技术,是不是程序员就不能开发大型项目?
  是可以的, 对大型项目进行模块划分, 对各个模块进行实现, 模块之间更多的是以API 调用完成, 耦合度较高, 不利于扩展和维护(题外话, 其实以前没有微服务技术时, 很多大型项目就已经使用了微服务的概念,只是当时不叫微服务)

2、再思考, 标准的微服务解决方案(springcloud 和cloud alibaba)出现原因和价值是什么?

(1) 微服务可以根据业务不同,将一个大项目, 分解成不同的服务(微服务,比如搜索服务/网关服务/配置服务/存储服务/发现服务等等) 

(2) 各个服务通过分布式方式进行工作,从而可以高效,快速,稳定的完成复杂的功能.

(3) 如果小伙伴还不理解, 你也可以理解成就将原来大项目的某些模块->抽出形成微服务->配合分布式工作方式-> 从而高效,快速,稳定的完成复杂业务功系统架构的演变过程

 单机架构

- 示意图

解析

这样是刚刚开始的架构这样的问题有 一个Service 根本支撑不住海量用户 

而且只有一个数据库 如果操作非常频繁在高并发的情况下根本支撑不住

所以单体架构只能在少量用户的情况下使用 一旦用户量上来了 业务量变复杂了就支撑不住了

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

 

解析

动静分离架构 是为了解决 单机架构所存在的问题 

加了一层Nginx服务器进行动静分离 如果你请求的资源是 静态资源 就去读取文件服务器 当然如果资源少的情况下可以放在Nginx服务器里面 看需求

 为了防止单机架构的数据库压力 动静分离架构增加了 一层 缓存服务器 Redis  在服务器里面先判断缓存服务器里面有没有 然后在决定去不去数据服务器操作 在一定的程度上缓存了数据库的压力

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

 

 解析 

 分布式架构优化了动静分离架构 将业务拆分开来实现了负载均衡 可以承担跟多的并发压力.

 微服务架构:使用Spring Cloud

 

 解读:

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

● 被拆分成的每一个小型服务都围绕着系统中的某一项或一些耦合度较高的业务功能进行构建, 并且每个服务都维护着自身的数据存储、业务开发、自动化测试案例以及独立部署机制。

由于有轻量级的通信协作基础, 所以这些微服务可以使用不同的语言来编写, 这里我们使用java.

Spring Cloud 全面说明(重要)

1. SpringCloud 来源于Spring, 是更高层次的、架构视角的综合性大型项目, 目标旨在构建一套标准化的微服务解决方案, 让架构师在使用微服务理念构建系统的时, 面对各环节的问题都可以找到相应的组件来处理.

2. Spring Cloud 是Spring 社区为微服务架构提供的一个"全家桶" 套餐。套餐中各个组件之间的配合, 可以减少在组件的选型和整合上花费的精力,可以快速构建起基础的微服务架构系统,是微服务架构的最佳落地方案.

3. Spirng Cloud 天然支持Spring Boot(有版本对应要求),使用门槛较低

4. 解决与分布式系统相关的复杂性– 网络问题,延迟开销,带宽问题,安全问题

5. 处理服务发现的能力– 服务发现允许集群中的进程和服务找到彼此并进行通信

6. 解决冗余问题– 冗余问题经常发生在分布式系统中

7. 解决负载平衡– 改进跨多个计算资源(例如计算机集群,网络链接,中央处理单元)的工作负载分布

Spring Cloud 核心组件图

1. 文档: https://spring.io/projects/spring-cloud

spring cloud 核心组件一览图

2、spring cloud Alibaba 文档地址: https://github.com/alibaba/spring-cloud-alibaba

3、spring cloud Netflix 地址: https://github.com/Netflix 

一图胜千言 

 

 Spring Cloud 分布式示意图

文档: https://spring.io/microservices

一图胜千言

Microservice resilience with Spring Cloud

The distributed nature of microservices brings challenges. Spring helps you mitigate these.
With several ready-to-run cloud patterns, Spring Cloud can help with service discovery,
load-balancing, circuit-breaking, distributed tracing, and monitoring. It can even act as an API
gateway

解读

1. Spring Cloud 是微服务的落地

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

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

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

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

SpringCloud 和SpringBoot 版本对应关系

1. 地址: https://spring.io/projects/spring-cloud

Spring Cloud 组件选型

- 一图胜千言 

X是不建议使用​​​     ✔是建议使用

 Spring Cloud Alibaba 基本介绍

 官方文档

 英文地址: https://github.com/alibaba/spring-cloud-alibaba

英文地址: 中文文档:
https://github.com/alibaba/spring-cloud-alibaba/blob/master/README-zh.md

Spring Cloud Alibaba 是什么

 主要功能一览

Spring Cloud Alibaba 核心组件

分布式微服务技术选型

● Spring Cloud 原生组件的几大痛点

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

● Spring Cloud Alibaba 的优势

1. 阿里使用过的组件经历了考验[高并发,高性能,高可用],性能强悍,设计合理,现在开源
出来供大家使用. 

2. 搭配完善的可视化界面, 给开发运维带来极大的便利搭建简单,学习曲线低

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

1. Spring Cloud Alibaba 组件为主
2. Spring Cloud 为辅, 比如(SpringCloud- Ribbon∶ 负载均衡、SpringCloud-OpenFeign∶ 调用远程服务、SpringCloud-Gateway∶ API 网关、SpringCloud-Sleuth∶ 调用链监控等) 还是非常不错的.

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

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

相关文章

UE C++ Windows平台调用讯飞语音合成接口

UE C Windows平台调用讯飞语音合成接口 环境设置调用讯飞语音接口回放语音数据输出EXE 环境设置 下载讯飞语音合成的Windows平台的C版本SDK,包含lib库文件和dll动态链接库在UE工程下新建一个ThirdParty/msc目录,将lib库文件和dll动态链接库放入其中[PRO…

mybatis是如何集成到spring的之托管mapper接口

前言 mybatis集成到spring可以参考spring mvc集成mybatis进行数据库访问 &#xff0c;其中mybatis集成到spring最重要的两个配置分别是SqlSessionFactoryBean和MapperScannerConfigurer&#xff0c;如下所示&#xff1a; <!--mybatis sqlSeesionFactory配置--><bean…

实验五 串行通讯建模以及教程

目录 教程&#xff1a; 第一步下载matlib 第二步找到Simulink 相关文件 链接&#xff1a;https://pan.baidu.com/s/1Im-TUVfV4d8dok2ebXbmjw?pwd2222 提取码&#xff1a;2222 【实验目的】 1、了解MATLAB软件环境和Simulink建模过程&#xff0c;掌握Simulink图形化编程方…

给 compose draw 绘制的非规则图形添加点击监听

前言 导言 在之前的两篇文章中&#xff0c;我们从实例出发&#xff0c;以实践的方式简单介绍了 compose 自定义绘制&#xff08;如何自己绘制想要的控件&#xff09;、为自定义绘制增加动画&#xff08;让控件动起来&#xff09;。 在这篇文章中&#xff0c;我们依然从实例出…

Linux 权限-+完整思维导图+实图例子+深入细节+通俗易懂建议收藏

绪论 当时间的主人&#xff0c;命运的主宰&#xff0c;灵魂的舵手。上一回已将基础权限全部学习完了&#xff0c;本章开始我们将进入到权限的学习。 话不多说安全带系好&#xff0c;发车啦&#xff08;建议电脑观看&#xff09;。 附&#xff1a;红色&#xff0c;部分为重点部分…

基于Gitee的webhook编写hugo的自动构建实现博客自动更新

前言 差不多半年前趁着某云优惠&#xff0c;我买了5年的轻量级应用服务器。 拿着这个服务器原本打算做我的某个APP的服务端的&#xff0c;后来又觉得迁移数据好麻烦&#xff0c;所以随便搞了个博客上去。 选来选去&#xff0c;使用了 hugo 作为构建引擎。 正好&#xff0c;…

跟我一起使用 compose 做一个跨平台的黑白棋游戏(1)整体实现思路

前言 为什么写这系列文章 虽然 compose 正式版已经出来很久了&#xff0c;也有很多大佬写了很多教程文章和实例 demo &#xff0c;但是对于 compose 其实我也还是一知半解的。 特别是对于 compose 的状态管理&#xff0c;由于 compose 声明式的特性&#xff0c;如果不对状态…

chatgpt赋能Python-pythonfor怎么用

PythonFor SEO&#xff1a;如何利用Python提高SEO效果 SEO&#xff08;搜索引擎优化&#xff09;是现代数字营销中至关重要的一环。随着搜索引擎算法不断发展&#xff0c;优化网站以提高排名已经成为了一门复杂的艺术。幸运的是&#xff0c;Python提供了一些强大的工具来简化这…

chatgpt赋能Python-pythonelem

PythonELEM - 简易的Python学习工具 作为一名有10年Python编程经验的工程师&#xff0c;我可以深刻地体会到新手们学习Python的难处。PythonELEM是一个以Python为主题的学习工具&#xff0c;它可以帮助初学者更容易地掌握Python编程。 PythonELEM的功能 PythonELEM是一个简易…

餐饮油烟排放监测管理系统的设计与应用

安科瑞虞佳豪 连日来&#xff0c;河东区生态环境保护综合行政执法支队组织开展餐饮行业油烟净化专项检查工作&#xff0c;有效应对即将到来的夏季餐饮油烟对环境的污染&#xff0c;着力解决群众身边的环境问题。 执法人员对辖区餐饮商户集中区域开展常态化巡查&#xff0c;重…

Metal入门学习:绘制渲染三角形

一、编程指南PDF下载链接(中英文档&#xff09; 1、Metal编程指南PDF链接 https://github.com/dennie-lee/ios_tech_record/raw/main/Metal学习PDF/Metal 编程指南.pdf 2、Metal着色语言(Metal Shader Language:简称MSL)编程指南PDF链接 https://github.com/dennie-lee/ios_te…

chatgpt赋能Python-pythoncumsum

Python中的cumsum-累积求和函数 在数据处理中&#xff0c;经常需要对一个序列的元素进行累加。Python中提供了累积求和函数cumsum()&#xff0c;用于对一个序列的元素进行累加求和操作。 什么是cumsum()函数 cumsum()函数是Python中numpy模块中的一个函数&#xff0c;用于对…

通过小米万兆路由器将小米SoundMove 无缝接入 ChatGPT

通过小米万兆路由器将小米SoundMove 无缝接入 ChatGPT 本教程内容参考 Github 地址(可选)部署查看小米 SoundMove 信息的环境(可选)查看小米 SoundMove 的信息以容器方式部署程序到小米万兆路由器实际效果有待改善点 本教程内容 1 是记录了将小米 SoundMove 接入 ChatGPT 的操…

面向《海贼王》领域数据的知识图谱项目

访问【WRITE-BUG数字空间】_[内附完整源码和文档] 本次任务试图为《海贼王》中出现的各个实体&#xff0c;包括人物、地点、组织等&#xff0c;构建一个知识图谱&#xff0c;帮助我们更好的理解这部作品。 项目内容包括数据采集、知识存储、知识抽取、知识计算、知识应用五大部…

【运动规划算法项目实战】如何使用Pure Pursuit算法进行路径跟踪(附ROS C++代码)

文章目录 前言一、简介二、Pure Pursuit算法优缺点三、 代码实现3.1 算法实现步骤3.2 pure_pursuit.h3.3 pure_pursuit.cpp3.4 cubic_spline_path.py3.5 节点连接关系3.6 RVIZ显示四、总结前言 在自动驾驶和机器人导航领域,路径跟踪是一项关键技术,它使车辆或机器人能够按照…

多线程排序法

多线程排序法 chatGPT给我改的多线程排序法 using System.Collections.Concurrent; using System.Threading; ConcurrentBag<int> sortedList new ConcurrentBag<int>(); void Sort() { int[] arr {2, 6, 12, 8}; List<Thread> threads new List<Threa…

chatgpt赋能Python-pythondone

PythonDone&#xff1a;将Python编程变得更加简单 介绍 Python是一种有着广泛应用的高级编程语言&#xff0c;由于其简洁易学、开发效率高、可移植性好等特点&#xff0c;成为业内最热门的技术之一。但是&#xff0c;对于一些初学者来说&#xff0c;Python的学习过程可能还是…

【论文分享|SIGMOD‘22】WeTune 自动发现和验证重写规则

作者&#xff1a;谢其骏 北京航空航天大学在读硕士&#xff0c; Databend 研发工程师实习生 https://github.com/jun0315 论文原文&#xff1a; Zhaoguo Wang, Zhou Zhou, Yicun Yang, Haoran Ding, Gansen Hu, Ding Ding, Chuzhe Tang, Haibo Chen, Jinyang Li. WeTune: Auto…

【AIGC】11、MDETR | LeCun 团队于 2021 年推出的端到端多模态理解模型

文章目录 一、背景二、方法2.1 DETR2.2 MDETR 三、效果3.1 预训练调整后的检测器3.2 下游任务 论文&#xff1a;MDETR - Modulated Detection for End-to-End Multi-Modal Understanding 代码&#xff1a;https://github.com/ashkamath/mdetr 出处&#xff1a;ICCV 2021 Oral…

chatgpt赋能Python-pythonctrl快捷键

PythonCtrl快捷键使用指南 作为一名有10年Python编程经验的工程师&#xff0c;我深知PythonCtrl快捷键的重要性。PythonCtrl作为一个Python的开源编辑器&#xff0c;在每一个版本中都加入了更多的功能和快捷键&#xff0c;使得Python编程更加高效和易用。在本篇文章中&#xf…