java面试背诵随笔(SpringCloud面试知识点 背诵第八天)

1、什么是Spring Cloud

 

1.Spring Cloud就是微服务系统架构的一站式解决方案,是各个微服务架构落地技术的集合体,俗称微服务全家桶

2.在平时我们构建微服务的过程中需要做如服务发现注册、配置中心、负载均衡、断路器、数据监控等操作,

  而Spring Cloud 为我们提供了一套简易的编程模型,使我们能在 Spring Boot 的基础上轻松地实现微服务项目的构建

 

        Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、智能路由、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
 
2、SpringCloud 优缺点
 
        优点:
        产出于Spring大家族,Spring在企业级开发框架中无人能敌,来头很大,可以保证后续的更新、完善、组件丰富,功能齐全。
 
        Spring Cloud 为微服务架构提供了非常完整的支持。例如、配置管理、服务发现、断路器、微服务网关等;
 
        Spring Cloud 社区活跃度很高,教程很丰富,遇到问题很容易找到解决方案服务拆分粒度更细,耦合度比较低,有利于资源重复利用,有利于提高开发效率可以更精准的制定优化服务方案,提高系统的可维护性减轻团队的成本,可以并行开发,不用关注其他人怎么开发,先关注自己的开发微服务可以是跨平台的,可以用任何一种语言开发适于互联网时代,产品迭代周期更短
 
        缺点:
 
        微服务过多,治理成本高,不利于维护系统
        分布式系统开发的成本高(容错,分布式事务等)对团队挑战大
 

3、Spring Cloud发展前景

        Spring Cloud对于中小型互联网公司来说是一种福音,因为这类公司往往没有实力或者没有足够的资金投入去开发自己的分布式系统基础设施,使用Spring Cloud一站式解决方案能在从容应对业务发展的同时大大减少开发成本。同时,随着近几年微服务架构和Docker容器概念的火爆,也会让Spring Cloud在未来越来越“云”化的软件开发风格中立有一席之地,尤其是在五花八门的分布式解决方案中提供了标准化的、全站式的技术方案,意义可能会堪比当年Servlet规范的诞生,有效推进服务端软件系统技术水平的进步。
 
7832bb1382b84ccaa762f03df270320c.png

 

 

4、Spring Cloud Netflix

        Netflix OSS 开源组件集成,包括Eureka、Hystrix、Ribbon、Feign、Zuul等核心组件。
 
        Eureka(u瑞卡):服务治理组件,包括服务端的注册中心和客户端的服务发现机制;
 
        Ribbon:负载均衡的服务调用组件,具有多种负载均衡调用策略;
 
        Hystrix:服务容错组件,实现了断路器模式,为依赖服务的出错和延迟提供了容错能力;
 
        Feign:基于Ribbon和Hystrix的声明式服务调用组件;
 
        Zuul:API网关组件,对请求提供路由及过滤功能。
 

5、Spring Cloud Security

        安全工具包,对Zuul代理中的负载均衡OAuth2客户端及登录认证进行支持。
 

6、Spring Cloud Stream

        轻量级事件驱动微服务框架,可以使用简单的声明式模型来发送及接收消息,主要实现为Apache Kafka及RabbitMQ。
 

7、Spring Cloud Zookeeper

        基于Apache Zookeeper的服务治理组件。
 

8、Spring Cloud OpenFeign

        基于Ribbon和Hystrix的声明式服务调用组件,可以动态创建基于Spring MVC 注解的接口实现用于服务调用,在Spring Cloud 2.0中已经取代Feign成为了一 等公民。
 

9、SpringBoot和SpringCloud的区别?

        SpringBoot专注于快速方便的开发单个个体微服务。 SpringCloud是关注全局的微服务协调整理治理框架,它将SpringBoot开发的 一个个单体微服务整合并管理起来,为各个微服务之间提供,配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等集成服务
        SpringBoot可以离开SpringCloud独立使用开发项目, 但是SpringCloud离不开SpringBoot ,属于依赖的关系
        SpringBoot专注于快速、方便的开发单个微服务个体,SpringCloud关注全局的服务治理框架。
 
10、 使用 Spring Boot 开发分布式微服务时,我们面临 以下问题
 
(1)与分布式系统相关的复杂性-这种开销包括网络问题,延迟开销,带宽问题,安全问题。
 
(2)服务发现-服务发现工具管理群集中的流程和服务如何查找和互相交谈。它涉及一个服务目录,在该目录中注册服务,然后能够查找并连接到该目录中的服务。
 
(3)冗余-分布式系统中的冗余问题。
 
(4)负载平衡 --负载平衡改善跨多个计算资源的工作负荷,诸如计算机,计算机集群,网络链路,中央处理单元,或磁盘驱动器的分布。
 
(5)性能-问题 由于各种运营开销导致的性能问题。
 
(6)部署复杂性-Devops 技能的要求。
 

11、服务注册和发现是什么意思?Spring Cloud 如何实现?

        当我们开始一个项目时,我们通常在属性文件中进行所有的配置。随着越来越多的服务开发和部署,添加和修改这些属性变得更加复杂。有些服务可能会下降,而某些位置可能会发生变化。手动更改属性可能会产生问题。 Eureka 服务注册和发现可以在这种情况下提供帮助。由于所有服务都在 Eureka 服务器上注册并通过调用 Eureka 服务器完成查找,因此无需处理服务地点的任何更改和处理。
 
12、 Spring Cloud 和dubbo区别?
 
(1)服务调用方式 dubbo是RPC springcloud Rest Api
 
(2)注册中心,dubbo 是zookeeper springcloud是eureka,也可以是 zookeeper
 
(3)服务网关,dubbo本身没有实现,只能通过其他第三方技术整合, springcloud有Zuul路由网关,作为路由服务器,进行消费者的请求分发,springcloud支持断路器,与git完美集成配置文件支持版本控制,事物总线实现配置文件的更新与服务自动装配等等一系列的微服务架构要素。
 

13、负载平衡的意义什么?

        在计算中,负载平衡可以改善跨计算机,计算机集群,网络链接,中央处理单元或磁盘驱动器等多种计算资源的工作负载分布。负载平衡旨在优化资源使用,最大化吞吐量,最小化响应时间并避免任何单一资源的过载。使用多个组件进行负载平衡而不是单个组件可能会通过冗余来提高可靠性和可用性。负载平衡通常涉及专用软件或硬件,例如多层交换机或域名系统服务器进程。
 
14、什么是 Hystrix?它如何实现容错?
 
        Hystrix 是一个延迟和容错库,旨在隔离远程系统,服务和第三方库的访问点,当出现故障是不可避免的故障时,停止级联故障并在复杂的分布式系统中实现弹 性。通常对于使用微服务架构开发的系统,涉及到许多微服务。这些微服务彼此协作。
 

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

        由于某些原因,employee-consumer 公开服务会引发异常。在这种情况下使用Hystrix 我们定义了一个回退方法。如果在公开服务中发生异常,则回退方法返回一些默认值。
 

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

        Feign 是受到 Retrofit,JAXRS-2.0 和 WebSocket 启发的 java 客户端联编程序。
 
        Feign 的第一个目标是将约束分母的复杂性统一到 http apis,而不考虑其稳定性。
 
        使用 Netflix Feign 使呼叫变得更加轻松和清洁。如果 Netflix Ribbon 依赖关系也在类路径中,那么 Feign 默认也会负责负载平衡。
 

17、Spring Cloud断路器的作用

        当一个服务调用另一个服务由于网络原因或自身原因出现问题,调用者就会等待被调用者的响应 当更多的服务请求到这些资源导致更多的请求等待,发生连锁效应(雪崩效应)断路器有完全打开状态:一段时间内 达到一定的次数无法调用 并且多次监测没有恢复的迹象 断路器完全打开 那么下次请求就不会请求到该服务半开:短时间内 有恢复迹象 断路器会将部分请求发给该服务,正常调用时 断路器关闭
        关闭:当服务一直处于正常状态 能正常调用
 

18、什么是Spring Cloud Config?

        在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更 新,所以需要分布式配置中心组件。在Spring Cloud中,有分布式配置中心组 件spring cloud config ,它支持配置服务放在配置服务的内存中(即本地),也支持放在远程Git仓库中。

        在spring cloud config 组件中,分两个角色,一是 config server,二是config client。

        使用:
 
                (1)添加pom依赖
 
                (2)配置文件添加相关配置
 
                (3)启动类添加注解@EnableConfigServer
 

19、什么是Spring Cloud Gateway?

        Spring Cloud Gateway是Spring Cloud官方推出的第二代网关框架,取代Zuul 网关。网关作为流量的,在微服务系统中有着非常作用,网关常见的功能有路由转发、权限校验、限流控制等作用。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

V_HttL2021314

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值