Spring Cloud面试问题
问:什么是Spring Cloud?
答:Spring Cloud Stream App Starters是基于Spring Boot的Spring Integration应用程序,提供与外部系统的集成。Spring Cloud Task。一种短命的微服务框架,用于快速构建执行有限数据处理的应用程序。
问:使用Spring Cloud有哪些优势?
答:使用Spring Boot开发分布式微服务时,我们面临以下问题 -
与分布式系统相关的复杂性 -
此开销包括网络问题,延迟开销,带宽问题,安全问题。
服务发现 -
服务发现工具管理群集中的进程和服务如何查找和相互通信。它涉及服务目录,在该目录中注册服务,然后能够查找和连接到该目录中的服务。
冗余 -
分布式系统中的冗余问题。
Loadbalancing-
负载平衡改善跨多个计算资源的工作负荷,诸如计算机,计算机集群,网络链路,中央处理单元,或磁盘驱动器的分布。
性能
问题 - 由于各种操作开销导致的性能问题。
部署复杂性 -
对Devops技能的要求。
问:服务注册和发现意味着什么?它是如何在Spring Cloud中实现的?
?答:当我们启动项目时,我们通常会在属性文件中包含所有配置。随着越来越多的服务的开发和部署,添加和修改这些属性变得更加复杂。某些服务可能会停止运行,而某些服务可能会发生变化。手动更改属性可能会产生问题。
Eureka服务注册和发现在这种情况下有所帮助。由于所有服务都已注册到Eureka服务器并通过调用Eureka Server完成查找,因此无需处理服务位置的任何更改, 并使用Netflix Eureka处理使用Spring云的微 服务
注册和发现。
问:Load Balancing的含义是什么?它是如何在Spring Cloud中实现的?
答: 在计算中,负载平衡可以改善跨多种计算资源(例如计算机,计算机集群,网络链接,中央处理单元或磁盘驱动器)的工作负载分布。负载平衡旨在优化资源使用,最大化吞吐量,最小化响应时间,并避免任何单个资源的过载。使用具有负载平衡而不是单个组件的多个组件可以通过冗余提高可靠性和可用性。负载平衡通常涉及专用软件或硬件,例如多层交换机或域名系统服务器进程。在SpringCloud中,可以使用Netflix Ribbon实现。
Spring Cloud- Netflix Eureka + Ribbon简单示例
问:什么是Hystrix?它是如何实现Fault Tolerance的?
答:Hystrix是一个延迟和容错库,旨在隔离对远程系统,服务和第三方库的访问点,停止级联故障,并在复杂的分布式系统中实现弹性,在这些系统中,故障是不可避免的。
通常,对于使用微服务架构开发的系统,涉及许多微服务。这些微服务相互协作。
考虑以下微服务 -?
假设如果上图中的微服务9失败,那么使用传统方法我们将传播异常。但这仍然会导致整个系统崩溃。
随着微服务数量的增加,这个问题变得更加复杂。微服务的数量可以高达1000.这是hystrix进入图片的地方
我们将在这种情况下成为Hystrix的Fallback方法功能。我们有两个服务员工 - 消费者使用员工 - 生产者公开的服务。
简化图如下
现在假设由于某种原因,雇员生产者暴露的服务抛出异常。在这种情况下,使用Hystrix我们定义了一个回退方法。此回退方法应具有与公开的服务相同的返回类型。如果在公开的服务中出现异常,则回退方法将返回一些值。
Spring Cloud- Netflix Hystrix后备方法简单示例
问:什么是Hystrix断路器?需要它吗?
答:由于某种原因,员工生产者暴露的服务会引发异常。在这种情况下,使用Hystrix我们定义了一个回退方法。如果在公开的服务中发生异常,则回退方法返回一些默认值。?
如果在firstPage方法()中出现异常,则Hystrix电路将中断,员工消费者将一起跳过firtsPage方法并直接调用回退方法。 断路器的目的是为第一页方法或firstpage方法可能调用的其他方法提供时间,并导致异常恢复。可能会发生在负载较少的情况下导致异常的问题有更好的恢复机会.
使用Netflix Hystrix的Spring Cloud- Circuit Breaker简单示例 ?
问:什么是Netflix Feign?它的优点是什么?
答:Feign是一个受到Retrofit,JAXRS-2.0和WebSocket启发的java到http客户端绑定器。Feign的第一个目标是降低将Denominator统一绑定到http apis的复杂性,无论其是否安宁。员工 - 消费者中的先前示例我们使用 REST模板 ?使用员工生产者公开的REST服务
但是我们必须编写大量代码来执行以下操作 -
使用功能区进行负载均衡。
获取服务实例,然后获取基本URL。
使用REST模板来消费服务
需要java学习路线图的私信笔者“java”领取哦!另外喜欢这篇文章的可以给笔者点个赞,关注一下,每天都会分享Java相关文章!还有不定时的福利赠送,包括整理的学习资料,面试题,源码等~~
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
每日十题:五分钟备战金九银十,你也能轻松过关Spring
欢迎关注专栏:Java架构技术进阶。里面有大量batj面试题集锦,还有各种技术分享,如有好文章也欢迎投稿哦。 微信公众号:慕容千语的架构笔记。欢迎关注一起进步。 Spring高级面试专题锦集 什么是 Spring 框架?Spring 框架有哪些主要模块? 使用 Spring 框架能带来哪些好处? 什么是控制反转(IOC)?什么是依赖注入? 请解释下 Spring 框架中的 IoC? BeanFactory 和 ApplicationContext 有什么区别? Spring 有几种配置方式? 如何用基于 XML 配置的方式配置 Spring? 如何用基于 Java 配置的方式配置 Spring? 怎样用注解的方式配置 Spring? 请解释 Spring Bean 的生命周期? 1、什么是 Spring 框架?Spring 框架有哪些主要模块? Spring 框架是一个为 Java 应用程序的开发提供了综合、广泛的基础性支持的 Java 平台。Spring 帮助开发者解决了开发中基础性的问题,使得开发人员可以专注于应用程序的开发。Spring 框架本身亦是按照设计模式精心打造,这使得我...
- 下一篇
修改代码150万行!Apache Flink 1.9.0做了这些重大修改!
阿里妹导读:8月22日,Apache Flink 1.9.0 正式发布。早在今年1月,阿里便宣布将内部过去几年打磨的大数据处理引擎Blink进行开源并向 Apache Flink 贡献代码。此次版本在结构上有重大变更,修改代码达150万行,接下来,我们一起梳理 Flink 1.9.0 中非常值得关注的重要功能与特性。 Flink 1.9.0是阿里内部版本 Blink 合并入 Flink 后的首次发版,修改代码150万行,此次发版不仅在结构上有重大变更,在功能特性上也更加强大与完善。本文将为大家介绍 Flink 1.9.0 有哪些重大变更与新增功能特性。 在此先简单回顾一下阿里巴巴Blink 开源的部分要点: Blink 开源的内容主要是阿里巴巴基于开源 Flink 引擎,依托集团内部业务,在流计算和批处理上积累的大量新功能、性能优化、稳
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- MySQL8.0.19开启GTID主从同步CentOS8
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Hadoop3单机部署,实现最简伪集群