什么是SpringCloud?可以用于干什么?

您所在的位置:网站首页 版权起到什么作用 什么是SpringCloud?可以用于干什么?

什么是SpringCloud?可以用于干什么?

2024-05-27 07:12| 来源: 网络整理| 查看: 265

浅谈SpringCloud 前言使用 Spring Boot 开发分布式微服务时,我们面临以下问题: 关于微服务技术栈:什么是SpringCloud ?使用SpringCloud的优缺点SpringCloud常见问题服务注册和发现是什么意思?Spring Cloud 如何实现?SpringBoot和SpringCloud的区别?负载均衡的意义什么?什么是 Hystrix?它如何实现容错?什么是 Hystrix 断路器?我们需要它吗?什么是 Netflix Feign?它的优点是什么?什么是SpringCloudConfig?什么是Spring Cloud Gateway?

前言 使用 Spring Boot 开发分布式微服务时,我们面临以下问题:

 (1)与分布式系统相关的复杂性-这种开销包括网络问题,延迟开销,带宽问题,安全问题。  (2)服务发现-服务发现工具管理群集中的流程和服务如何查找和互相交谈。它涉及一个服务目录,在该目录中注册服务,然后能够查找并连接到该目录中的服务。  (3)冗余-分布式系统中的冗余问题。  (4)负载平衡 --负载平衡改善跨多个计算资源的工作负荷,诸如计算机,计算机集群,网络链路,中央处理单元,或磁盘驱动器的分布。  (5)性能-问题 由于各种运营开销导致的性能问题。  (6)部署复杂性-Devops 技能的要求。 因此,当遇到该问题时需要用到SpringCloud

关于微服务技术栈:

维度(springcloud) 服务开发:springboot spring springmvc 服务配置与管理:Netfix公司的Archaiusm ,阿里的Diamond 服务注册与发现:Eureka,Zookeeper 服务调用:Rest RPC gRpc 服务熔断器:Hystrix 服务负载均衡:Ribbon Nginx 服务接口调用:Fegin 消息队列:Kafka Rabbitmq activemq 服务配置中心管理:SpringCloudConfig 服务路由(API网关)Zuul 事件消息总线:SpringCloud Bus

什么是SpringCloud ?

基于 Spring Boot 的 Spring 集成应用程序,它利用 Spring Boot 的开发便利性简化了分布式系统的开发,提供与外部系统的集成。 如服务注册与发现、配置中心、负载均衡、断路器、消息总线、数据监控等;换句话说:Spring Cloud 提供了构建分布式系统所需的“全家桶”。 Spring cloud Task,一个生命周期短暂的微服务框架,用于快速构建执行有限数据处理的应用程序。 个人理解: springcloud是一种架构,一种思想,分布式,云架构,不专注于CRUD;springcloud就相当于乐高积木 核心组件含: Eureka:服务注册与发现。 Feign:基于动态代理机制,根据注解和选择的机器,拼接请求 url 地址,发起请求。 Ribbon:实现负载均衡,从一个服务的多台机器中选择一台。 Hystrix:提供线程池,不同的服务走不同的线程池,实现了不同服务调用的隔离,避免了服务雪崩的问题。 Zuul:网关管理,由 Zuul 网关转发请求给对应的服务。

使用SpringCloud的优缺点

在这里插入图片描述

根据上图: 优点: (1)前后端分离开发,便于快速开发 (2)采用去中心化思想,服务之间采用Restful等轻量级通讯,比ESB更轻量 (3)利于扩展模块,乐高积木一般 (4)Springcloud的节点不会影响另一个节点 (5)适于互联网时代,产品迭代周期更短,如果用来做电商网站的话,性能是非常好的 缺点: 配置复杂,节点多,涉及的知识点多,所以治理成本高,不利于维护系统,且对团队挑战大

SpringCloud常见问题 服务注册和发现是什么意思?Spring Cloud 如何实现?

在这里插入图片描述

当我们开始一个项目时,我们通常在属性文件中进行所有的配置。随着越来越多的服务开发和部署,添加和修改这些属性变得更加复杂。有些服务可能会下降,而某些位置可能会发生变化。手动更改属性可能会产生问题。 Eureka 服务注册和发现可以在这种情况下提供帮助。由于所有服务都在 Eureka 服务器上注册并通过调用 Eureka 服务器完成查找,因此无需处理服务地点的任何更改和处理。 或者使用Nacos!!!!

SpringBoot和SpringCloud的区别?

(1)Springboot是单体个体的开发,Springcloud是分布式(多个)的开发 (2)SpringBoot可以离开SpringCloud独立使用开发项目, 但是SpringCloud离不开SpringBoot ,属于依赖的关系. (3)SpringBoot专注于快速、方便的开发单个微服务个体,SpringCloud关注全局的服务治理框架。

负载均衡的意义什么?

在这里插入图片描述

负载均衡里面提供了轮巡算法机制(默认),可以最大化吞吐量,优化资源的使用,最小化响应时间并避免任何单一资源的过载。可能会通过冗余来提高可靠性和可用性。 第二的话可以利用权重分配机制(就是根据服务器的性能来分配,提高资源的使用) 它的意义的话就是让请求均分到同一服务的每个节点上。 附:Feign接口的话就默认开启了Ribbon负载均衡(一般情况下,是用于一个服务的多个节点上才使用)

什么是 Hystrix?它如何实现容错?

Hystrix(英文意思为豪猪(带刺))是一个延迟和容错库 当出现故障是不可避免的故障时, 停止级联故障并在复杂的分布式系统中实现弹性。 主要用于服务降级,对响应慢的服务做超时快速失败处理,即熔断 如何实现容错:跳闸机制,资源隔离,监控,回退机制

什么是 Hystrix 断路器?我们需要它吗?

在微服务上我们是很需要Hystrix 断路器的 当我们的微服务有一个出问题时,就会造成很多请求等待 就会耗尽电脑的内存资源造成服务雪崩 我们使用了断路器后,请求就不是排队等待,从而加速失败判定。

什么是 Netflix Feign?它的优点是什么?

是远程调用技术;优点:实现了负载均衡,去中心化思想 附1: feign是由Netflix开发出来的另外一种实现负载均衡的开源框架,它封装了Ribbon和RestTemplate,实现了WebService的面向接口编程,进一步的减低了项目的耦合度,因为它封装了Riboon和RestTemplate,所以它具有这两种框架的功能,可以实现负载均衡和Rest调用。 附2: RestTemplate:需要手动开启负载均衡,手动写请求的URL,对于开发和变更不是很方便 FeignTemplate:默认开启负载均衡,写接口和服务名即可,便于升级和维护

什么是SpringCloudConfig?

是springcloud的配置中心,包括客户端和服务端两个部分; (在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件) 附: 可以采用Eureka和Nacos作为配置中心,但是现在Eureka不开源了,所以现在用阿里巴巴的Nacos。另外Nacos还可以作为注册与发现使用。 Eureka:需要自己配置服务端 Nacos:自身就带配置中心的服务端;我们只需要添加配置项和阿里巴巴的访问项

什么是Spring Cloud Gateway?

是springcloud自身的组件,用于服务网关,所有微服务都是通过网关来访问,可以统一做限流日志、权限等操作;还可以配置路由(手动配置) 附: 限流就是限制流量,因为服务器能处理的请求数有限,如果请求量特别大,我们需要做限流(要么就让请求等待,要么就把请求给扔了), 限流可以保障我们的 API 服务对所有用户的可用性,也可以防止网络攻击。在高并发的应用中,限流是一个绕不开的话题。

1

编写不易,如果有帮助到的话,可以关注,点赞和收藏哦~ ↩︎



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3