【SpringCloud入门】-- 认识微服务

news2024/11/24 8:52:33

目录

1. 什么是微服务?

2. 微服务的优势?

3. 单体架构,分布式架构,微服务架构的区别以及优缺点?

4. SpringCloud和Spring Cloud Alibaba是什么?

5. SpringCloud和SpringCloudAlibaba的区别?

6. SpringBoot与SpringCloud兼容版本说明

7. 服务拆分示例

8. SpringCloudAlibaba功能介绍

9. SpringCloudAlibaba的idea配置

 10. SpringCloudAlibaba官方文档


1. 什么是微服务?

微服务是一种软件设计和架构的风格,它将应用程序分为一组较小的,相互独立的服务,并通过轻量级的通信机制进行协作。每个微服务都专注于完成一个特定的业务功能,可以独立开发,测试,部署和维护。在微服务架构中,服务之间是松耦合的,每个服务都是独立的运行单元,可以根据业务需求进行快速迭代和演进。

与传统单体应用程序不同,微服务的架构将应用程序拆分为多个小的服务,每个小的服务都遵循单一的职责,负责执行某个具体的功能,不必关注其他服务的实现细节。此外,由于每个服务都是独立的,可以使用不同的编程语言,框架和技术来开发和部署不同的服务,这大大降低了技术选型的限制。

2. 微服务的优势?

  1. 高度可伸缩性和弹性:由于每个服务都是独立的,可以根据实际业务需求进行快速的扩展和缩减,提高系统的弹性和可伸缩性。
  2. 更快的应用程序迭代和部署:微服务可以被独立开发,测试,部署,升级,维护,实现更快的应用程序迭代和部署。
  3. 更好的故障隔离和容错能力:由于微服务之间是松耦合的,一个服务故障不会对其他部分产生影响,且可以使用各种容错机制提高容错能力。
  4. 更好的团队组织和管理:微服务架构可以便于团队更加专注于各个模块以及业务功能,更好地进行分工协作,降低团队的沟通成本。

3. 单体架构,分布式架构,微服务架构的区别以及优缺点?

  • 单体架构
    • 单体架构是一种传统的软件设计和架构风格,应用程序作为一个整体运行在单个进程中,所有的功能模块和数据访问都被打包在一起。
    • 优点:单体架构部署简单,易于管理,对于小型应用程序来说开发速度快,可以提高代码复用性。
    • 缺点:难以维护和扩展,一旦应用程序规模变大,就会导致代码复杂度增加;部署和升级需要停机维护,影响用户的体验;耦合度高,一处出问题可能影响整个程序。
  • 分布式架构
    • 通过分布式架构将应用程序划分成多个模块和组件,在多个计算机上分布运行,并通过网络进行通信和数据交换。
    • 优点:通过分布式部署,可以实现更好的可伸缩性和可靠性;可以灵活选择合适的技术进行开发;通过分布式部署,可以更好的实现模块化和松耦合,易于管理。
    • 缺点:分布式开发需要更多的沟通与协作;需要处理分布式事务和数据一致性等问题;需要考虑负载均衡和网络通信的性能问题;需要对系统进行综合监控和管理。
  • 微服务架构
    • 微服务架构是一种面向服务的架构风格,将应用程序划分为多个小,松耦合的组件,在不同的主机独立运行,并通过轻量级通信机制进行协作。
    • 优点:通过模块化的设计,可以实现更快的迭代和部署;更好的实现松耦合,容错性更高;方便地对业务变化,易于维护和扩展。
    • 缺点:需要更多的开发和运维资源,需要更好的治理机制来确保服务的稳定性和可靠性;需要考虑服务之间的通信和一致性的问题;需要对架构进行全局监控和管理。

4. SpringCloud和Spring Cloud Alibaba是什么?

  • SpringCloud
    • SpringCloud是基于SpringBoot的微服务框架,可以帮助开发人员快速构建,部署和管理分布式系统。提供了一系列的工具和组件,如服务注册与发现,配置中心,负载均衡,断路器等,支持多种云平台和技术栈,使开发人员快速构建高可用,可扩展的微服务应用程序。
  • SpringCloudAlibaba
    • SpringCloudAlibaba是在SpringCloud基础上,集成了阿里巴巴公司的一系列分布式解决方案,包括Nacose注册中心,Sentinel熔断降级,DubboRPC等,提供了更完善的分布式解决方案。相比于SpringCloud,Spring Cloud Alibaba更加全面的分布式解决方案,能满足复杂的需求

5. SpringCloud和SpringCloudAlibaba的区别?

  • 服务注册与发现

Spring Cloud使用Eureka或Consul作为服务注册中心,而Spring Cloud Alibaba使用Nacos作为注册中心。Nacos支持更多的服务发现和服务注册功能,如DNS解析、动态配置等。

  • 配置管理

Spring Cloud使用Spring Cloud Config来管理配置文件,而Spring Cloud Alibaba使用Nacos Config来管理配置文件。Nacos Config支持更多的动态配置和管理功能。

  • 熔断降级

Spring Cloud使用Hystrix来实现熔断降级,而Spring Cloud Alibaba使用Sentinel来实现熔断降级。Sentinel相比于Hystrix,提供了更加完善的流量控制和熔断降级管理功能。

  • 分布式事务

Spring Cloud使用Spring Cloud Sleuth和Zipkin进行分布式事务追踪,而Spring Cloud Alibaba使用Seata进行分布式事务管理。Seata是一个全局性的分布式事务管理框架,支持AT、TCC和SAGA三种分布式事务模式,并提供了更丰富的事务管理功能。

总之,Spring Cloud和Spring Cloud Alibaba都是优秀的微服务框架,它们在不同的业务场景下都有各自的应用。如果需要基本的微服务框架和解决方案,可以选择Spring Cloud;如果需要更全面、更复杂的分布式解决方案,可以选择Spring Cloud Alibaba。

6. SpringBoot与SpringCloud兼容版本说明

2022.0.x aka Kilburn3.0.x
2021.0.x. aka Jubilee2.6.x,2.7.x(从 2021.0.3开始)
2020.0.x aka Ilford2.4.x,2.5.x(从2020.0.3开始)
Hoxton2.2.x,2.3.0(从SR5开始)
Greenwich2.1.x
Finchley2.0.x
Edgware1.5.x
Dalston1.5.x

7. 服务拆分示例

SpringCloud-test:父工程,管理依赖。

用户模块:用户微服务,负责所有用户相关业务。

教师模块:教师微服务,负责教师信息相关业务。

8. SpringCloudAlibaba功能介绍

  • 流量控制和服务降级:流量控制,断路和系统自适应保护与阿里巴巴哨兵。

  • 服务注册与发现:实例可以在Alibaba的Nacos中注册,客户端可以使用spring管理的bean发现实例。支持Ribbon,通过SpringCloudNetflix的客户端负载均衡。

  • 分布式配置:使用阿里Nacos作为数据存储。

  • 事件驱动:构建与SpringCloudStream RocketMQ Binder连接的高度可扩展的事件驱动。

  • 消息总线:使用Springcloud总线RocketMQ连接分布式系统节点。

  • 分布式事务:支持具有高性能和易于使用的Seata分布式事务解决方案。

  • Dubbo RPC:通过Dubbo RPC扩展SpringCloud服务到服务调用的通信协议。

9. SpringCloudAlibaba的idea配置

pom中的依赖项:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>{project-version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

如果想为阿里云服务使用Spring Boot starter,可以将阿里云Spring Boot BOM添加到pom.xml:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>aliyun-spring-boot-dependencies</artifactId>
            <version>{project-version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

 10. SpringCloudAlibaba官方文档

Spring Cloud Alibaba Reference Documentation

11. SpringCloud常用组件表

 服务注册与发现(eureka,nacos,consul)

服务负载均衡(ribbon)

服务相互调用(openFeign)

服务的容错(hustrix,sentinel)

服务的网关(gateway,Zuul)

服务的统一配置管理(config-server)

服务的消息总线(bus)

服务的安全组件(security,Oauth2.0)

服务监控(admin)(JVM)

链路追踪(sleuth+zipkin)

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

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

相关文章

apple pencil二代值不值得买?口碑好的电容笔排行榜

事实上&#xff0c;苹果Pencil与市场上普通的电容笔最大的区别就是在重量和压感上。苹果pencil拥有着独特的重力压感&#xff0c;可以很好运用于绘画上&#xff0c;但是&#xff0c;随着苹果Pencil的价格一直高居不下&#xff0c;而平替电容笔各种性能的不断提高&#xff0c;苹…

Vue中如何进行3D场景展示与交互(如Three.js)

Vue中如何进行3D场景展示与交互&#xff08;如Three.js&#xff09; 随着WebGL技术的发展&#xff0c;越来越多的网站开始使用3D场景来展示产品、游戏等内容。在Vue中&#xff0c;我们可以使用第三方库Three.js来实现3D场景的展示与交互。本文将介绍如何在Vue中使用Three.js来…

和 if else说再见,SpringBoot 这样做参数校验才足够优雅!

1. 概述 当我们想提供可靠的 API 接口&#xff0c;对参数的校验&#xff0c;以保证最终数据入库的正确性&#xff0c;是 必不可少 的活。比如下图就是 我们一个项目里 新增一个菜单校验 参数的函数&#xff0c;写了一大堆的 if else 进行校验&#xff0c;非常的不优雅&#xf…

语音验证码短信原理和应用场景分析

引言 随着移动互联网的快速发展&#xff0c;短信验证码成为了许多应用和服务中常用的身份验证方式。然而&#xff0c;有时候用户可能由于各种原因无法接收到短信验证码&#xff0c;或者对于文字验证码不够方便或友好。 为了解决这些问题&#xff0c;语音验证码短信API 应运而…

【论文精读ACL_2021】Prefix-Tuning: Optimizing Continuous Prompts for Generation

【论文精读ACL_2021】Prefix-Tuning: Optimizing Continuous Prompts for Generation 0、前言Abstract1 Introduction2 Related Work2.1 Fine-tuning for natural language generation.2.2 Lightweight fine-tuning2.3 Prompting.2.4 Controllable generation. 3 Problem State…

Python做数据分析需要学什么?

下面分别从这四个方面来带大家学习数据分析&#xff1a; 第一&#xff0c;做数据分析要精通Python吗&#xff1f;第二&#xff0c;数据分析流程是什么&#xff1f;学什么&#xff1f;第三&#xff0c;如何培养数据分析思维&#xff1f;第四&#xff0c;数据分析书籍推荐 一、…

关于linux服务器上生成的图片中文字为的乱码问题

一、功能描述 linux服务器后端生成图表&#xff08;使用了canvas和echarts&#xff09;&#xff0c;并将生成的图片发送到企业微信群里。 二、出现的问题 生成的图表中文展示不出来&#xff0c;是乱码。错误图表展示如下&#xff1a; 三、 文字乱码出现的原因 linux服务器没有…

git在windows及linux(源码编译)环境下安装

git在windows及linux(源码编译)环境下安装 环境信息: 系统版本:CentOS Linux release 7.9.2009 (Core) git指令安装: yum install -y git 一、git在windows下安装 下载地址:https://git-scm.com/ 默认安装即可 验证 git --version 二、git在linux下安装 下载地址…

电子标签服务器搭建说明文档

一、安装运行环境 1.安装jdk 运行JDK_1.8.0_64bit.exe程序,可自定义安装路径 ​ 2.配置环境变量 择计算机图标&#xff0c;鼠标右键选择属性 ​ 选择高级系统设置&#xff0c;在系统属性中找到环境变量 ​ 在系统变量中新建JAVA_HOME环境变量&#xff0c;变量值为jdk的安装路…

跨域请求!!!

1.见过的请求类型都有哪些 getpostputdeleteoptions 和跨域相关的请求头 2.什么是跨域 当主机、域名、端口有任何一个不一致的时候&#xff0c;会出现跨域 3.跨域只有在哪里会出现 浏览器里出现了&#xff0c;它是浏览器的一个行为 4.为什么有跨域 为了安全不同域名之间…

系统编程(3):进程

文章目录 一、概念1.1 什么是进程&#xff1f;1.2 进程ID1.3 进程间通信1.4 进程的三种态的转换 二、进程控制2.1 创建进程函数&#xff1a;fork函数2.1.1 获得pid函数写代码&#xff1a;方式一&#xff1a;最简单的方式二&#xff1a;加入while&#xff08;1&#xff09;死循环…

基于Arduino的LED显示屏驱动实现

基于Arduino的LED显示屏驱动实现可以通过使用Arduino板上的数字引脚和相关库来控制LED显示屏的亮灭和显示效果。LED显示屏加载不出图像怎么办&#xff1f; 下面是基于Arduino的LED显示屏驱动实现的详细介绍&#xff1a; 硬件准备&#xff1a; Arduino开发板&#xff1a;可以使用…

ROS中 mpc_local_planner 局部路径规划器参数配置文件中参数含义

mpc_local_planner与我们比较熟悉的teb_local_planner出自同一研究所&#xff08;多特蒙德大学-控制理论与系统工程研究所&#xff09;&#xff0c;所以参数配置文件中的参数有很多相似之处&#xff0c;很多参数的含义也是相同的&#xff0c;所以熟悉teb_local_planner的参数含…

亚马逊认证考试系列 - 知识点 - 安全组介绍

AWS的安全组是一种虚拟防火墙&#xff0c;可以用于控制进入和离开AWS虚拟私有云(VPC)的流量。安全组是一种网络访问控制列表(NACL)的补充&#xff0c;因为安全组是在实例级别上进行管理的&#xff0c;而NACL是在子网级别上进行管理的。 AWS的安全组可以通过以下方式保护您的资源…

自然语言处理: 第一章N-Gram

一. 理论基础 定义: 语言模型在wiki的定义是统计式的语言模型是一个几率分布&#xff0c;给定一个长度为 m 的字词所组成的字串 W1 , W2 &#xff0c; &#xff0c;Wn &#xff0c;派几率的字符串P(S) P(W1 , W2 , &#xff0c;Wn &#xff0c; )而其中由条件概率公式我们可以…

风景类Midjourney prompt提示词

稳定输出优美风景壁纸的Midjourney prompt提示词。 1\在夏夜&#xff0c;有淡蓝色的星空&#xff0c;海边&#xff0c;流星&#xff0c;烟花&#xff0c;海滩上全是蓝色的玫瑰和绿色的植物&#xff0c;由Ivan Aivazovsky和Dan Mumford&#xff0c;趋势在cgsociety&#xff0c;…

CAN转串口设备在使用时可能遇到的问题和解决方案

上位机软件通过232串口发送数据经过CAN转232设备转换成CAN数据发送到仪表中&#xff0c;仪表接收到指定的数据后&#xff0c;返回特定的CAN数据。 使用过程中可能遇到的问题 1、串口按照规则发送数据后&#xff0c;设备端没有数据返回 遇到这种情况&#xff0c;先检查发送的数…

STM32 Proteu直流电机正反转控制系统限位开关-0035

STM32 Proteu直流电机正反转控制系统限位开关-0035 Proteus仿真小实验&#xff1a; STM32 Proteu直流电机正反转控制系统限位开关-0035 功能&#xff1a; 硬件组成&#xff1a;STM32F103C6单片机 L298N电机控制电路直流电机3个按键&#xff08;正转、反转、停止&#xff09;L…

AM62X+FPGA+AD+vxworks实时操作系统数据采集处理解决方案

Specification Description 处理器 AM6231 at up to 1.2GHz 操作系统 VXWORKS 存储 DDR4,8GB EMMC 接口 •PrPMC接口 •1个USB2.0 •3路RMII •1路RS485 •1路IRIGB •1路RS232 调试接口 JTAG / COP debug port 工业环境监测设备&#xff1a; Specification Desc…

常见优化器详解

优化器 目前有两种主流优化器&#xff1a;随机梯度下降系&#xff08;Stochastic Gradient Descent, SGD&#xff09;和Adam系。 应该认识到的是&#xff0c;优化器并不是某类数学上的优化算法&#xff0c;而是梯度下降&#xff08;一阶迭代法&#xff09;的工程实现方案和包…