SpringCloud全网讲解最详细的一般(第二弹)---包面试稳过

简介: 从今天开始我会持续更新面试题,其中涵盖了:Java基础、多线程、IO、高并发、集合框架、数据库、框架以及分布式技术。持续更新中·······

16. Spring Cloud 的核心组件有哪些?


  • Eureka:服务注册于发现。
  • Feign:基于动态代理机制,根据注解和选择的机器,拼接请求 url 地址,发起请求。
  • Ribbon:实现负载均衡,从一个服务的多台机器中选择一台。
  • Hystrix:提供线程池,不同的服务走不同的线程池,实现了不同服务调用的隔离,避免了服务雪崩的问题。
  • Zuul:网关管理,由 Zuul 网关转发请求给对应的服务。


17. 说说Spring Boot和Spring Cloud的关系


Spring Boot是Spring推出用于解决传统框架配置文件冗余,装配组件繁杂的基于Maven的解决方案,旨在快速搭建单个微服务 而Spring Cloud专注于解决各个微服务之间的协调与配置,服务之间的通信,熔断,负载均衡等 技术维度并相同,并且Spring Cloud是依赖于Spring Boot的,而Spring Boot并不是依赖与Spring Cloud,甚至还可以和Dubbo进行优秀的整合开发

总结

  • SpringBoot专注于快速方便的开发单个个体的微服务
  • SpringCloud是关注全局的微服务协调整理治理框架,整合并管理各个微服务,为各个微服务之间提供,配置管理,服务发现,断路器,路由,事件总线等集成服务
  • Spring Boot不依赖于Spring Cloud,Spring Cloud依赖于Spring Boot,属于依赖关系
  • Spring Boot专注于快速,方便的开发单个的微服务个体,Spring Cloud关注全局的服务治理框架


18. 说说微服务之间是如何独立通讯的?


远程过程调用(Remote Procedure Invocation) : 也就是我们常说的服务的注册与发现,直接通过远程过程调用来访问别的service。

优点: 简单,常见,因为没有中间件代理,系统更简单

缺点:只支持请求/响应的模式,不支持别的,比如通知、请求/异步响应、发布/订阅、发布/异步响应,降低了可用性,因为客户端和服务端在请求过程中必须都是可用的。

消息 : 使用异步消息来做服务间通信。服务间通过消息管道来交换消息,从而通信。

优点: 把客户端和服务端解耦,更松耦合,提高可用性,因为消息中间件缓存了消息,直到消费者可以消费, 支持很多通信机制比如通知、请求/异步响应、发布/订阅、发布/异步响应。

缺点: 消息中间件有额外的复杂。


19. Spring Cloud如何实现服务的注册?


服务发布时,指定对应的服务名,将服务注册到 注册中心( Eureka 、Zookeeper) 。注册中心加 @EnableEurekaServer ,服务用 @EnableDiscoveryClient ,然后用ribbon或feign进行服务直接的调用发现。


20. 什么是服务熔断?


在复杂的分布式系统中,微服务之间的相互调用,有可能出现各种各样的原因导致服务的阻塞,在高并发场景下,服务的阻塞意味着线程的阻塞,导致当前线程不可用,服务器的线程全部阻塞,导致服务器崩溃,由于服务之间的调用关系是同步的,会对整个微服务系统造成服务雪崩为了解决某个微服务的调用响应时间过长或者不可用进而占用越来越多的系统资源引起雪崩效应就需要进行服务熔断和服务降级处理。

所谓的服务熔断指的是某个服务故障或异常一起类似显示世界中的“保险丝"当某个异常条件被触发就直接熔断整个服务,而不是一直等到此服务超时。

服务熔断就是相当于我们电闸的保险丝,一旦发生服务雪崩的,就会熔断整个服务,通过维护一个自己的线程池,当线程达到阈值的时候就启动服务降级,如果其他请求继续访问就直接返回fallback的默认值。


21. 了解Eureka自我保护机制吗?


当Eureka Server 节点在短时间内丢失了过多实例的连接时(比如网络故障或频繁启动关闭客户端)节点会进入自我保护模式,保护注册信息,不再删除注册数据,故障恢复时,自动退出自我保护模式。


22. 熟悉 Spring Cloud Bus 吗?


spring cloud bus 将分布式的节点用轻量的消息代理连接起来,它可以用于广播配置文件的更改或者服务直接的通讯,也可用于监控。 如果修改了配置文件,发送一次请求,所有的客户端便会重新读取配置文件。


23. Spring Cloud 断路器有什么作用?


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

半开:短时间内 有恢复迹象 断路器会将部分请求发给该服务,正常调用时 断路器关闭。

关闭:当服务一直处于正常状态 能正常调用。


24. 了解Spring Cloud Confifig 吗?


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

在 Spring Cloud Config 组件中,分两个角色,一是confifig server,二是confifig client。

使用方式:

  • 添加pom依赖
  • 配置文件添加相关配置
  • 启动类添加注解@EnableConfifigServer


25. 说说你对Spring Cloud Gateway的理解


Spring Cloud Gateway是Spring Cloud官方推出的第二代网关框架,取代Zuul网关。网关作为流量的,在微服务系统中有着非常作用,网关常见的功能有路由转发、权限校验、限流控制等作用。使用了一个RouteLocatorBuilder的bean去创建路由,除了创建路由RouteLocatorBuilder可以让你添加各种predicates和fifilters,predicates断言的意思,顾名思义就是根据具体的请求的规则,由具体的route去处理,fifilters是各种过滤器,用来对请求做各种判断和修改。



相关文章
|
3月前
|
负载均衡 Java API
Spring Cloud 面试题及答案整理,最新面试题
Spring Cloud 面试题及答案整理,最新面试题
215 1
|
负载均衡 Java API
SpringCloud之OpenFeign介绍案例+相关面试题
OpenFeign是一个声明式的WEB服务客户端,它使WEB服务客户端变得更加容易。具有可插拔的注解支持,SpringCloud中添加了SpringMVC注解的支持。SpringCloud中集成了Ribbon和Eureka,以及SpringCloud LoadBalance,以便在使用Feign时提供负载均衡的HTTP客户端Feign是一个远程调用的组件集成了Ribbon,默认的负载均衡策略是轮询
368 0
|
3月前
|
Java Nacos Sentinel
Spring Cloud Alibaba 面试题及答案整理,最新面试题
Spring Cloud Alibaba 面试题及答案整理,最新面试题
414 0
|
14天前
|
负载均衡 监控 Java
SpringCloud常见面试题(一):SpringCloud 5大组件,服务注册和发现,nacos与eureka区别,服务雪崩、服务熔断、服务降级,微服务监控
SpringCloud常见面试题(一):SpringCloud 5大组件,服务注册和发现,nacos与eureka区别,服务雪崩、服务熔断、服务降级,微服务监控
SpringCloud常见面试题(一):SpringCloud 5大组件,服务注册和发现,nacos与eureka区别,服务雪崩、服务熔断、服务降级,微服务监控
|
1月前
|
监控 Java 应用服务中间件
SpringCloud面试之流量控制组件Sentinel详解
SpringCloud面试之流量控制组件Sentinel详解
99 0
|
1月前
|
存储 算法 Java
Java面试之SpringCloud篇
Java面试之SpringCloud篇
67 1
|
3月前
|
负载均衡 监控 Java
我把Spring Cloud的超详细资料介绍给你,面试官不会生气吧?geigei
我把Spring Cloud的超详细资料介绍给你,面试官不会生气吧?geigei
|
3月前
|
负载均衡 Java 微服务
Spring Cloud面试题
Spring Cloud面试题
36 4
|
3月前
|
缓存 监控 Java
这些年背过的面试题——SpringCloud篇
本文是技术人面试系列SpringCloud篇,面试中关于SpringCloud都需要了解哪些基础?一文带你详细了解,欢迎收藏!
428 0
|
10月前
|
消息中间件 负载均衡 Java
Spring Cloud 2023常见20道面试题
以下是20个2023年面试中可能会遇到的Spring Cloud常见问题以及参考答案:
966 0