文章目录

      • 1、什么是Spring Cloud?
      • 2、使用Spring Cloud有什么优势?
      • 3、服务注册和发现是什么意思?Spring Cloud如何实现?
      • 4、负载平衡的意义什么?
      • 5、什么是Hystrix?它如何实现容错?
      • 6、什么是Hystrix 断路器?我们需要它吗?
      • 7、什么是Netflix Feign?它的优点是什么?
      • 8、什么是Spring Cloud Bus?我们需要它吗?
      • 9、SpringBoot和SpringCloud的区别?
      • 10、Spring Cloud和SpringBoot版本对应关系
      • 11、SpringCloud由什么组成
      • 12、使用 Spring Boot开发分布式微服务时,我们面临什么问题?
      • 13、Spring Cloud和dubbo区别?
    • Eureka
      • 14、服务注册和发现是什么意思?Spring Cloud如何实现?
      • 15、什么是Eureka?
      • 16、Eureka怎么实现高可用
      • 17、什么是Eureka的自我保护模式?
      • 18、DiscoveryClient的作用
      • 19、Eureka和ZooKeeper都可以提供服务注册与发现的功能,请说说两个的区别?
    • Zuul
      • 1、什么是网关?
      • 2、网关的作用是什么?
      • 3、什么是Spring Cloud Zuul(服务网关)
      • 4、网关与过滤器有什么区别?
      • 5、常用网关框架有那些?
      • 6、Zuul与Nginx有什么区别?
      • 7、既然Nginx可以实现网关?为什么还需要使用Zuul框架
      • 8、如何设计一套API接口?
      • 9、ZuulFilter常用有那些方法?
      • 10、如何实现动态Zuul网关路由转发?
      • 11、Zuul网关如何搭建集群?
    • Ribbon
      • 1、负载平衡的意义什么?
      • 2、Ribbon是什么?
      • 3、Nginx与Ribbon的区别?
      • 4、Ribbon底层实现原理?
    • Hystrix
      • 1、什么是断路器?
      • 2、什么是Hystrix?
      • 3、谈谈服务雪崩效应?
      • 4、在微服务中,如何保护服务?
      • 5、服务雪崩效应产生的原因
      • 6、谈谈服务降级、熔断、服务隔离
      • 7、服务降级底层是如何实现的?
    • Feign
      • 1、什么是Feign?
      • 2、SpringCloud有几种调用接口方式?
      • 3、Ribbon和Feign调用服务的区别?
    • Bus
      • 1、什么是 Spring Cloud Bus?
    • Confifig
      • 1、什么是Spring Cloud Confifig?
      • 2、分布式配置中心有那些框架?
      • 3、分布式配置中心的作用?
      • 4、SpringCloud Confifig 可以实现实时刷新吗?
    • Gateway
      • 1、什么是Spring Cloud Gateway?
      • 2、SpringCloud主要项目
      • 3、Spring Cloud和SpringBoot版本对应关系
      • 4、Spring Cloud和各子项目版本对应关系
  • 总结

最近面试的小伙伴很多,对此我整理了一份Java面试题手册:基础知识、JavaOOP、Java集合/泛型面试题、Java异常面试题、Java中的IO与NIO面试题、Java反射、Java序列化、Java注解、多线程&并发、JVM、Mysql、Redis、Memcached、MongoDB、Spring、SpringCloud、SpringBoot、RabbitMQ、Dubbo、MyBatis、ZooKeeper、数据结构、算法、Elasticsearch、Kafka、微服务、Linux等等。可以分享给大家学习。【持续更新中】

完整版Java面试题地址:【2021最新版】Java面试真题汇总

序号 内容 地址链接
1 【2021最新版】JavaOOP面试题总结 https://blog.csdn.net/m0_48795607/article/details/115288673
2 【2021最新版】Java基础面试题总结 https://blog.csdn.net/m0_48795607/article/details/115485109
3 【2021最新版】多线程&并发面试题总结 https://blog.csdn.net/m0_48795607/article/details/115489616
4 【2021最新版】JVM面试题总结 https://blog.csdn.net/m0_48795607/article/details/115555086
5 【2021最新版】Mysql面试题总结 https://blog.csdn.net/m0_48795607/article/details/115561030
6 【2021最新版】Redis面试题总结 https://blog.csdn.net/m0_48795607/article/details/115642129
7 【2021最新版】Memcached面试题总结 https://blog.csdn.net/m0_48795607/article/details/115664662
8 【2021最新版】MongoDB面试题总结 https://blog.csdn.net/m0_48795607/article/details/115672336
9 【2021最新版】Spring面试题总结 https://blog.csdn.net/m0_48795607/article/details/115738909
10 【2021最新版】Spring Boot面试题总结 https://blog.csdn.net/m0_48795607/article/details/115771307
11 【2021最新版】RabbitMQ面试题总结 https://blog.csdn.net/m0_48795607/article/details/116064045
12 【2021最新版】Dubbo面试题总结 https://blog.csdn.net/m0_48795607/article/details/116237861
13 【2021最新版】MyBatis面试题总结 https://blog.csdn.net/m0_48795607/article/details/116427170
14 【2021最新版】ZooKeeper面试题总结 https://blog.csdn.net/m0_48795607/article/details/116458096
15 【2021最新版】数据结构面试题总结 https://blog.csdn.net/m0_48795607/article/details/116461620
16 【2021最新版】算法面试题总结 https://blog.csdn.net/m0_48795607/article/details/116461620
17 【2021最新版】Elasticsearch面试题总结 https://blog.csdn.net/m0_48795607/article/details/116656094
18 【2021最新版】Kafka面试题总结 https://blog.csdn.net/m0_48795607/article/details/116659584
19 【2021最新版】微服务面试题总结 https://blog.csdn.net/m0_48795607/article/details/116662109
20 【2021最新版】Linux面试题总结 https://blog.csdn.net/m0_48795607/article/details/116798880

1、什么是Spring Cloud?

答:

Spring cloud 流应用程序启动器是基于Spring Boot的Spring集成应用程序,提供与外部系统的集成。Spring cloud Task,一个生命周期短暂的微服务框架,用于快速构建执行有限数据处理的应用程序。

2、使用Spring Cloud有什么优势?

答:

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

1、与分布式系统相关的复杂性-这种开销包括网络问题,延迟开销,带宽问题,安全问题。

2、服务发现-服务发现工具管理群集中的流程和服务如何查找和互相交谈。它涉及一个服务目录,在该目录中注册服务,然后能够查找并连接到该目录中的服务。

3、冗余-分布式系统中的冗余问题。

4、负载平衡 --负载平衡改善跨多个计算资源的工作负荷,诸如计算机,计算机集群,网络链路,中央处理单元,或磁盘驱动器的分布。

5、性能-问题 由于各种运营开销导致的性能问题。

6、部署复杂性-Devops 技能的要求。

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

答:

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

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

答:

在计算中,负载平衡可以改善跨计算机,计算机集群,网络链接,中央处理单元或磁盘驱动器等多种计算资源的工作负载分布。负载平衡旨在优化资源使用,最大化吞吐量,最小化响应时间并避免任何单一资源的过载。使用多个组件进行负载平衡而不是单个组件可能会通过冗余来提高可靠性和可用性。负载平衡通常涉及专用软件或硬件,例如多层交换机或域名系统服务器进程。

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

答:

Hystrix 是一个延迟和容错库,旨在隔离远程系统,服务和第三方库的访问点,当出现故障是不可避免的故障时,停止级联故障并在复杂的
分布式系统中实现弹性。通常对于使用微服务架构开发的系统,涉及到许多微服务。这些微服务彼此协作。思考以下微服务

假设如果上图中的微服务 9 失败了,那么使用传统方法我们将传播一个异常。但这仍然会导致整个系统崩溃。 随着微服务数量的增加,这个问题变得更加复杂。微服务的数量可以高达 1000.这是 hystrix 出现的地方 我们将使用 Hystrix 在这种情况下的 Fallback 方法功能。我们有两个服务 employee-consumer 使用由 employee-consumer 公开的服务。简化图如下所示

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

答:

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

如果 firstPage method() 中的异常继续发生,则Hystrix 电路将中断,并且员工使用者将一起跳过firtsPage方法,并直接调用回退方法。

断路器的目的是给第一页方法或第一页方法可能调用的其他方法留出时间,并导致异常恢复。可能发生的情况是,在负载较小的情况下,导致异常的问题有更好的恢复机会 。

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

答:

Feign是受到Retrofit,JAXRS-2.0和WebSocket 启发的 java 客户端联编程序。Feign的第一个目标是将约束分母的复杂性一到 httpapis,而不考虑其稳定性。在 employee-consumer 的例子中,我们使用了 employee-producer使用REST模板公开的REST服务。

但是我们必须编写大量代码才能执行以下步骤

1、使用功能区进行负载平衡。

2、获取服务实例,然后获取基本URL。

3、利用REST模板来使用服务。 前面的代码如下:

之前的代码,有像NullPointer这样的例外的机会,并不是最优的。我们将看到如何使用Netflix Feign使呼叫变得更加轻松和清洁。如果Netflix Ribbon依赖关系也在类路径中,那么Feign默认也会负责负载平衡。

8、什么是Spring Cloud Bus?我们需要它吗?

答:

考虑以下情况:我们有多个应用程序使用Spring Cloud Config读取属性,而Spring Cloud Config从GIT读取这些属性。
下面的例子中多个员工生产者模块从Employee Config Module获取Eureka注册的财产

如果假设GIT中的Eureka注册属性更改为指向另一台Eureka服务器,会发生什么情况。在这种情况下,我们将不得不重新启动服务以获取更新的属性。还有另一种使用执行器端点/刷新的方式。但是我们将不得不为每个模块单独调用这个url。例如,如果EmployeeProducer1部署在端口8080上,则调用http:// localhost:8080/refresh。同样对于Employee Producer2 http://localhost:8081/refresh等等。这又很麻烦。这就是Spring Cloud Bus发挥作用的地方。

Spring Cloud Bus提供了跨多个实例刷新配置的功能。因此,在上面的示例中,如果我们刷新Employee Producer1,则会自动刷新所有其他必需的模块。如果我们有多个微服务启动并运行,这特别有用。这是通过将所有微服务连接到单个消息代理来实现的。无论何时刷新实例,此事件都会订阅到侦听此代理的所有微服务,并且它们也会刷新。可以通过使用端点/总线/刷新来实现对任何单个实例的刷新。

9、SpringBoot和SpringCloud的区别?

答:

SpringBoot专注于快速方便的开发单个个体微服务。

SpringCloud是关注全局的微服务协调整理治理框架,它将SpringBoot开发的一个个单体微服务整合并管理起来,为各个微服务之间提供,配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等集成服务SpringBoot可以离开SpringCloud独立使用开发项目, 但是SpringCloud离不开SpringBoot ,属于依赖的关系SpringBoot专注于快速、方便的开发单个微服务个体,SpringCloud关注全局的服务治理框架。

10、Spring Cloud和SpringBoot版本对应关系

答:

11、SpringCloud由什么组成

答:

12、使用 Spring Boot开发分布式微服务时,我们面临什么问题?

答:

13、Spring Cloud和dubbo区别?

答:

Eureka

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

答:

15、什么是Eureka?

答:

16、Eureka怎么实现高可用

答:

17、什么是Eureka的自我保护模式?

答:

18、DiscoveryClient的作用

答:

19、Eureka和ZooKeeper都可以提供服务注册与发现的功能,请说说两个的区别?

答:

  1. ZooKeeper中的节点服务挂了就要选举 在选举期间注册服务瘫痪,虽然服务最终会恢复,但是选举期间不可用的, 选举就是改微服务做了集群,必须有一台主其他的都是从

  2. Eureka各个节点是平等关系,服务器挂了没关系,只要有一台Eureka就可以保证服务可用,数据都是最新的。 如果查询到的数据并不是最新的,就是因为Eureka的自我保护模式导致的

  3. Eureka本质上是一个工程,而ZooKeeper只是一个进程

  4. Eureka可以很好的应对因网络故障导致部分节点失去联系的情况,而不会像ZooKeeper 一样使得整个注册系统瘫痪

  5. ZooKeeper保证的是CP,Eureka保证的是AP

CAP:

C:一致性>Consistency; 取舍:(强一致性、单调一致性、会话一致性、最终一致性、弱一致性)

A:可用性>Availability;

P:分区容错性>Partition tolerance;

Zuul

1、什么是网关?

答:

2、网关的作用是什么?

答:

3、什么是Spring Cloud Zuul(服务网关)

答:

4、网关与过滤器有什么区别?

答:

5、常用网关框架有那些?

答:

6、Zuul与Nginx有什么区别?

答:

7、既然Nginx可以实现网关?为什么还需要使用Zuul框架

答:

8、如何设计一套API接口?

答:

9、ZuulFilter常用有那些方法?

答:

10、如何实现动态Zuul网关路由转发?

答:

11、Zuul网关如何搭建集群?

答:

Ribbon

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

答:

2、Ribbon是什么?

答:

3、Nginx与Ribbon的区别?

答:

4、Ribbon底层实现原理?

答:

@LoadBalanced注解的作用

开启客户端负载均衡。

Hystrix

1、什么是断路器?

答:

2、什么是Hystrix?

答:

3、谈谈服务雪崩效应?

答:

4、在微服务中,如何保护服务?

5、服务雪崩效应产生的原因

答:

6、谈谈服务降级、熔断、服务隔离

答:

7、服务降级底层是如何实现的?

答:

Feign

1、什么是Feign?

答:

2、SpringCloud有几种调用接口方式?

答:

3、Ribbon和Feign调用服务的区别?

答:

Bus

1、什么是 Spring Cloud Bus?

答:

Confifig

1、什么是Spring Cloud Confifig?

答:

2、分布式配置中心有那些框架?

答:

3、分布式配置中心的作用?

答:

4、SpringCloud Confifig 可以实现实时刷新吗?

答:

Gateway

1、什么是Spring Cloud Gateway?

答:

2、SpringCloud主要项目

答:





Spring Cloud Sleuth

在微服务中,通常根据业务模块分服务,项目中前端发起一个请求,后端可能跨几个服务调用才能完成这个请求(如下图)。

如果系统越来越庞大,服务之间的调用与被调用关系就会变得很复杂,假如一个请求中需要跨几个服务调用,其中一个服务由于网络延迟等原因挂掉了,那么这时候我们需要分析具体哪一个服务出问题了就会显得很困难。Spring Cloud Sleuth服务链路跟踪功能就可以帮助我们快速的发现错误根源以及监控分析每条请求链路上的性能等等。



3、Spring Cloud和SpringBoot版本对应关系

答:

4、Spring Cloud和各子项目版本对应关系

答:

总结

该面试题答案解析完整文档获取方式:Spring Cloud面试题总结

【2021最新版】Spring Cloud面试题总结(35道题含答案解析)相关推荐

  1. 2020年Redis面试题总结(30道题含答案解析)

    2020年Redis面试题总结(30道题含答案解析) 这个是整理的思维导图,给大家分享一下. 1. 什么是 Redis?简述它的优缺点? (1)Redis 的全称是:Remote Dictionary ...

  2. 【2021最新版】Spring Boot面试题总结(92道题含答案解析)

    文章目录 1.什么是Spring Boot? 2.为什么要用SpringBoot? 3.Spring Boot有哪些优点? 4.Spring Boot的核心注解是哪个?它主要由哪几个注解组成的? 5. ...

  3. 【2021最新版】Spring面试题总结(131道题含答案解析)

    文章目录 一般问题 1.不同版本的Spring Framework有哪些主要功能? 2.什么是Spring Framework? 3.列举Spring Framework的优点. 4.Spring F ...

  4. linux sed面试题,【2021最新版】Linux面试题总结(48道题含答案解析)

    文章目录 1.绝对路径用什么符号表示?当前目录.上层目录用什么表示?主目录用什么表示? 切换目录用什么命令? 2.怎么查看当前进程?怎么执行退出?怎么查看当前路径? 3.怎么清屏?怎么退出当前命令?怎 ...

  5. 【2021最新版】JVM面试题总结(87道题含答案解析)

    文章目录 1.Java中会存在内存泄漏吗,请简单描述. 2.64位JVM中,int的长度是多数? 3.Serial与Parallel GC之间的不同之处? 4.32位和64位的JVM,int类型变量的 ...

  6. 【2021最新版】RabbitMQ面试题总结(32道题含答案解析)

    文章目录 1.什么是rabbitmq? 2.为什么要使用rabbitmq? 3.使用rabbitmq的场景. 4.如何确保消息正确地发送至RabbitMQ?如何确保消息接收方消费了消息? 5.如何避免 ...

  7. 【2021最新版】Mysql面试题总结(115道题含答案解析)

    文章目录 1.MySQL中有哪几种锁? 2.MySQL中有哪些不同的表格? 3.简述在MySQL数据库中MyISAM和InnoDB的区别. 4.MySQL中InnoDB支持的四种事务隔离级别名称,以及 ...

  8. 【2021最新版】微服务面试题总结(65道题含答案解析)

    文章目录 1.微服务,又称微服务 架构,是一种架构风格,它将应用程序构建为以业务领域为模型的小型自治服务集合 . 2.微服务架构有哪些优势? 3.微服务有哪些特点? 4.设计微服务的最佳实践是什么? ...

  9. 【2021最新版】Elasticsearch面试题总结(24道题含答案解析)

    文章目录 1.Elasticsearch了解多少,说说你们公司ES的集群架构,索引数据大小,分片有多少,以及一些调优手段 . 2.Elasticsearch的倒排索引是什么? 3.Elasticsea ...

最新文章

  1. MVC应用程序播放RealPlayer(rmvb)视频
  2. python脚本设置linux环境变量_Linux环境变量export方法与修改文件方法的区别
  3. 动圈耳机振膜_耳机中的动圈、动铁、圈铁都是什么意思 买哪种最好?
  4. php 返回map,PHP Ds\Map get()用法及代码示例
  5. 引号快捷键_就业有“位”来 能让你早下班的常用快捷键
  6. 按压缩格式整理打包(解包)和压缩(解压)命令
  7. Qt工作笔记-MySQL获取select表头(域)数据
  8. mysql数据库约束详解_基于MySQL数据库的数据约束实例及五种完整性约束介绍
  9. 精通开关电源设计第三版pdf_看漫画,学电源(一)丨线性电源与开关电源的构造...
  10. 李学斌:广告的罪恶与救赎
  11. mysql类似bulkcopy_mysql中有没有同MSSql中的sqlbulkcopy 类似的类
  12. java快捷键大全,非常详细,清楚明了
  13. linux低级格式化工具下载,U盘低格工具(Rmprepusb)
  14. 华为交换机主备命令_华为交换机基本命令
  15. 第十二章:互联网-webbrowser:显示Web页面-使用特定浏览器
  16. word2013、word2016、word2019标题序号变黑色竖线解决方法
  17. 计算机网络知识点总结(第四章 网络层)
  18. 2018/5/25-2018/6/7
  19. Numpy 简单教程(二)数组的形状(shape)操作
  20. CSDN常见问题汇总

热门文章

  1. 【附源码】计算机毕业设计java英语单词记忆系统设计与实现
  2. 储能变流器(PCS),500kW,采用T型三电平模块
  3. volatile vs synchronized
  4. Acrobat与Itextpdf的搭配使用-根据模板填充PDF
  5. 电脑安卓模拟器多开技术模拟器功能使用介绍
  6. JS 数组转对象 对象转数组 对象数组互相转换
  7. js/javascript/JS/Javascript/JavaScript/Js-牛客系列之HJ77.火车进站
  8. KiCAD绘制电源符号
  9. B001-Atmega16-数码管
  10. pH敏感树枝状聚合物纳米粒子-聚酰胺胺(PAMAM)树枝状聚合物-瑞禧