一、简介
本文将总结一些常见的微服务架构SpringCloud相关的面试题。
二、面试题
【1】什么是SpringCloud? 使用SpringCloud有什么优势?
SpringCloud是在SpringBoot基础上构建的,用于快速构建分布式系统的通用模式的工具集。
优势:
- 约定优于配置
- 适用于各种环境.开发,部署在PC Server 或各种云环境均可
- 隐藏了组件的复杂性,并提供声明式,无xml的配置方式
- 开箱即用
- 轻量级的组件. Spring Cloud整合的组件大多比较轻量.例如Eureka,Zuul等等
- 组件丰富,功能齐全. Spring Cloud 为微服务架构提供了非常完整的支持.例如,配置管理,服务发现,断路器,微服务网关等
- 选型中立,丰富. 例如,Spring Cloud 支持使用Eureka,Zookeeper或Consul实现服务发现
- 灵活.Spring Cloud的组成部分是解耦的,开发人员可按需灵活挑选技术选型
【2】服务注册和发现是什么意思?SpringCloud如何实现?
当我们开始一个项目的时候,我们通常需要对属性文件中进行所有的配置(yml文件配置)。随着越来越多的服务开发和部署,添加和修改这些属性变得更加复杂。有些服务可能会有所下降,而某些位置可能会发生变化。手动更改属性可能会产生问题。Eureka服务注册和服务发现可以在这种情况下提供帮助,由于所有服务都在Eureka服务器上注册并通过调用Eureka服务器完成查找,因此无需处理服务地点的任何更改和处理。
【3】Ribbon负载均衡的意义是什么?
负载均衡旨在优化资源使用,最大化吞吐量,最小化响应时间并避免单一资源的过载。使用多个组件进行负载而不是单个组件可能会通过冗余来提高可靠性和可用性。
【4】什么是Hystrix?它如何实现容错?
Hystrix是断路器的意思,提供服务熔断处理,通俗理解就是提供失败回调,避免雪崩效应导致整个系统不可用。通过Hystrix提供的fallback回调方法在服务调不通的时候快速返回调用失败结果,防止服务一直在阻塞等待,进一步防止异常蔓延。
【5】什么是Feign?它的优点是什么?
Feign是远程服务调用的意思,Feign默认集成了Ribbon负载均衡功能,可以实现对服务的负载均衡调用。
【6】什么是Spring Cloud Bus?
消息总线,提供了一种方式用于刷新Spring Cloud Config配置中心配置文件的功能。Spring Cloud Bus提供了跨多个服务实例刷新配置的功能。通过将所有微服务连接到单个消息代理来实现的,无论何时刷新实例,此事件都会订阅到侦听此代理的所有微服务,并且他们也会自动刷新配置。可以通过端点、总线、刷新来实现对任何单个实例的刷新
【7】什么是Zuul?如何配置?
Zuul是微服务网关组件。
作用:
- Zuul的核心其实就是一系列过滤器
- 身份认证与安全
- 审查与监控
- 动态路由
- 压力测试
- 负载分配
- 静态响应处理
- 多区域弹性
使用:
@EnableZuulProxy :开启Zuul的网关功能
ZuulFilter过滤器:
【8】什么是Spring Cloud Config?如何配置?
Spring Cloud Config 是一种用来动态获取Git、SVN、本地的配置文件的一种工具。
使用:@EnableConfigServer
Server端配置:
三、总结
下面分享一个脑图总结:
更多推荐
SpringCloud常见面试题总结一
发布评论