-
Spring Cloud 面试路线最全整理(附面试题精选及答案)
Spring Cloud 面试路线最全整理,附 Spring Cloud 高频必考面试题及答案。 搞定 Spring Cloud 面试题,看这一篇就够了,不用四处找资料,节约大量时间。 1 Spring Cloud 面试题及答案 基础 什么是微服务 微服务的优点、缺点 你知道哪些微服务技术栈 什么是 Spring Cloud Spring Cloud 有什么特性 Spring Cloud 的…... -
Spring Cloud 学习进阶路线及资料(附大厂面试题合集)
无论在实际工作中,还是面试通关,Spring Cloud 都是大家必知必会的一个知识点。 Spring Cloud 是目前最常用的微服务开发框架,大量企业级开发中都有应用。 Spring Cloud 简化了分布式系统基础设施的开发,将各个开发较为成熟、经得起实际考验的服务框架进行组合,再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。 我最新…... -
Ribbon负载均衡的作用是什么
参考答案 Ribbon负载均衡的作用 将用户的请求平摊的分配到多个服务上。 集中式LB,即在服务的消费方和提供方之间,使用独立的LB设施(可以是硬件,例如F5,也可以是软件,例如nginx), 由该设施负责把访问请求通过某种策略转发至服务的提供方。 进程内LB将LB逻辑集成到消费方,消费方从服务注册中心获知有哪些地址可用,然后自己再从这些地址中选择出一个合适的服务器。 注意: Ribbon就属于进…... -
Ribbon负载均衡是什么
参考答案 Spring Cloud Ribbon 是基于Netflix Ribbon实现的一套客户端负载均衡的工具。 Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等。 简单的说,就是在配置文件中列出Load Balancer(简称LB)后面所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询,随机连接等)去连接这些机器。 以上,是Spring Cloud面试题…... -
Spring Cloud断路器的作用是什么
参考答案 当一个服务调用另一个服务,由于网络原因或自身原因出现问题时,调用者就会等待被调用者的响应。当更多的服务请求到这些资源,导致了更多的请求等待,就会发生连锁效应(雪崩效应)。 断路器就是解决这一问题的。 断路器的三种状态: Closed:关闭状态(断路器关闭),所有请求都正常访问。代理类维护了最近调用失败的次数,如果某次调用失败,则使失败次数加1。如果最近失败次数超过了在给定时间内允许失败的…... -
Ribbon 和 Feign 的区别
参考答案 启动类注解不同:Ribbon是@RibbonClient ;Feign是@EnableFeignClients。 服务指定的位置不同:Ribbon是在@RibbonClient注解上声明;Feign则是在定义抽象方法的接口中使用@FeignClient声明。 调用方式不同:Ribbon需要自己构建http请求,模拟http请求然后使用RestTemplate发送给其他服务,步骤相当繁琐。…... -
你知道哪些微服务技术栈
参考答案 维度:springcloud 服务开发:springboot spring springmvc 服务配置与管理:Netfix的Archaiusm,阿里的Diamond 服务注册与发现:Eureka,Zookeeper 服务调用:Rest RPC gRpc 服务熔断器:Hystrix 服务负载均衡:Ribbon Nginx 服务接口调用:Fegin 消 息 队 列:Kafka Rabbitm…... -
REST 和 RPC 的区别
参考答案 RPC 主要的缺陷是服务提供方和调用方式之间的依赖太强,需要对每一个微服务进行接口的定义,并通过持续继承发布,严格版本控制才 不会出现冲突。 REST 是轻量级的接口,服务的提供和调用不存在代码之间的耦合,只需要一个约定进行规范。 以上,是Spring Cloud面试题【REST 和RPC的区别】的参考答案。 输出,是最好的学习方法。 欢迎在评论区留下你的问题、笔记或知识点…... -
微服务的优点、缺点
参考答案 微服务的优点: 每个服务直接足够内聚,代码容易理解。 开发效率高,一个服务只做一件事,适合小团队开发。 松耦合,有功能意义的服务。 可以用不同语言开发,面向接口编程。 易于第三方集成。 微服务只是业务逻辑的代码,不会和HTML,CSS或其他界面结合。 可以灵活搭配,连接公共库/连接独立库。 微服务的缺点: 分布式系统的责任性。 多服务运维难度加大。 系统部署依赖,服务间通信成本,数据一致…... -
RPC 组件职责划分
参考答案 RPC 组件职责: RpcServer:负责导出(export)远程接口。 RpcClient:负责导入(import)远程接口的代理实现。 RpcProxy:远程接口的代理实现。 RpcInvoker: 客户方实现:负责编码调用信息和发送调用请求到服务方并等待调用结果返回; 服务方实现:负责调用服务端接口的具体实现并返回调用结果。 RpcProtocol:负责协议编/解码。 RpcCo…... -
RPC 结构拆解是怎样的
参考答案 RPC 结构拆解图示: RPC 服务方通过 RpcServer 去导出(export)远程接口方法,而客户方通过 RpcClient 去引入(import)远程接口方法。 客户方像调用本地方法一样去调用远程接口方法,RPC 框架提供接口的代理实现,实际的调用将委托给代理 RpcProxy 。 代理封装调用信息并将调用转交给 RpcInvoker 去实际执行。 在客户端的 RpcInvok…... -
RPC 调用分类有几种
参考答案 RPC 调用分以下两种: 1. 同步调用 客户方等待调用执行完成并返回结果。 2. 异步调用 客户方调用后不用等待执行结果返回,但依然可以通过回调通知等方式获取返回结果。 若客户方不关心调用返回结果,则变成单向异步调用,单向调用不用返回结果。 异步和同步的区分在于,是否等待服务端执行完成并返回结果。 以上,是Spring Cloud面试题【RPC 调用分类有几种】的参…... -
RPC 的实现原理是什么
参考答案 RPC 的主要功能目标: 让构建分布式计算(应用)更容易,在提供强大的远程调用能力时不损失本地调用的语义简洁性。 RPC的实现原理总结: 首先,需要有处理网络连接通讯的模块,负责连接建立、管理和消息的传输。 其次,需要有编解码的模块,因为网络通讯都是传输的字节码,需要将我们使用的对象序列化和反序列化。 客户端和服务器端的部分,服务器端暴露要开放的服务接口,客户调用服务接口的一个代理实现,…... -
Eureka 和 Zookeeper 的区别是什么
参考答案 Eureka 和 Zookeeper 都能提供服务注册与发现的功能,Eureka和zookeeper的区别: 1. Zookeeper保证了CP(C:一致性,P:分区容错性) 当向注册中心查询服务列表时,我们可以容忍注册中心返回的是几分钟以前的信息,但不能容忍直接down掉不可用。也就是说,服务注册功能对高可用性要求比较高,但Zookeeper会出现这样一种情况,当master节点因为…... -
什么是服务熔断?什么是服务降级
参考答案 熔断机制 熔断机制是应对雪崩效应的一种微服务链路保护机制。 当某个微服务不可用或者响应时间太长时,会进行服务降级,进而熔断该节点微服务的调用,快速返回“错误”的响应信息。 当检测到该节点微服务调用响应正常后恢复调用链路。 在Spring Cloud框架里,熔断机制通过Hystrix实现,Hystrix会监控微服务间调用的状况,当失败的调用到一定阈值,缺省是5秒内调用20次,如果失败,就会…... -
什么是微服务
参考答案 微服务架构是一种架构模式(架构风格)。 它提倡将单一应用程序划分为一组小的服务,每个服务运行在其独立的自己的进程中。服务之间相互协调、互相配合,为用户提供最终价值。 服务之间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API),每个服务都围绕着具体的业务进行构建,并且能够被独立的构建在生产环境、类生产环境等。 以上,是Spring Cloud面试题【什…... -
什么是 Spring Cloud Bus
参考答案 考虑以下情况:我们有多个应用程序使用 Spring Cloud Config 读取属性,而 Spring Cloud Config 从 GIT 读取这些属性。 下面图例,多个员工生产者模块从 Employee Config Module 获取 Eureka 注册的财产。 假设 GIT 中的 Eureka 注册属性更改为指向另一台 Eureka 服务器,在这种情况下,就要重新启动服务,以获取更新…... -
什么是 Netflix Feign?它的优点是什么
参考答案 Feign 是受到 Retrofit、JAXRS-2.0 和 WebSocket 启发的 Java 客户端联编程序。 Feign 的第一个目标是将约束分母的复杂性统一到 http apis,而不考虑其稳定性。 但是,我们必须编写大量代码,才能执行以下步骤: 使用功能区进行负载平衡。 获取服务实例,然后获取基本 URL。 利用 REST 模板来使用服务。 示例: @Controller pu…... -
什么是 Hystrix 断路器
参考答案 Hystrix是一个专门的服务保护框架。 Hystrix提供了熔断、隔离、Fallback、cache、监控等功能,能够在一个、或多个依赖同时出现问题时保证系统依然可用。 在一个分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等。如果没有采取任何措施,就会导致雪崩效应。服务雪崩效应是一种因“服务提供者的不可用”(原因),导致“服务调用者不可用”(结果),并将不可用逐渐放大的现象…... -
负载平衡的意义是什么
参考答案 在计算中,负载平衡可以改善跨计算机、计算机集群、网络链接、中央处理单元或磁盘驱动器等多种计算资源的工作负载分布。 负载平衡旨在优化资源使用,最大化吞吐量,最小化响应时间,并避免任何单一资源的过载。 使用多个组件进行负载平衡,而不是单个组件可能会通过冗余来提高可靠性和可用性。 负载平衡通常涉及专用软件或硬件。例如,多层交换机或域名系统服务器进程。 以上,是Spring Clo…... -
服务注册和发现是什么,Spring Cloud 如何实现
参考答案 服务注册 是在微服务治理中心eureka中注册实例。 服务的发现 是通过服务名,在治理中心中获取实例,再通过ribbon或者是fegin来调用相应的服务。 Spring Cloud 的实现 SpringCloud的基础是SpringBoot,每一个SpringBoot项目都是功能单一并且可以独立运行的项目。 这些SpringBoot项目在运行时都会在eureka中注册自己的服务名和实例,…... -
Spring Cloud 的核心特性有哪些
参考答案 Spring Cloud 的核心特性: 分布式/版本化配置。 服务注册和发现。 路由。 服务和服务之间的调用。 负载均衡。 断路器。 分布式消息传递。 以上,是Spring Cloud面试题【Spring Cloud 的核心特性有哪些】的参考答案。 输出,是最好的学习方法。 欢迎在评论区留下你的问题、笔记或知识点补充~ ---end---... -
使用 Spring Cloud 有什么优势
参考答案 Spring Cloud 来源于 Spring,质量、稳定性、持续性都可以得到保证。 Spring Cloud 是 Java 领域最适合做微服务的框架。 Spring Cloud 是微服务架构的最佳落地方案。 Spirng Cloud 天然支持 Spring Boot,更加便于业务落地。 相比于其它框架,Spring Cloud 对微服务周边环境的支持力度最大。 对于中小企业来讲,使用门…... -
Dubbo 和 Spring Cloud 的区别
参考答案 定位:Dubbo 专注 RPC 和服务治理;Spirng Cloud 是一个微服务架构生态。 性能:Dubbo 强于 SpringCloud(主要是通信协议的影响)。 功能范围:Dubbo 诞生于面向服务架构时代,是一个分布式、高性能、透明化的 RPC 服务框架,提供服务自动注册、自动发现等高效服务治理方案;Spring Cloud 诞生于微服务架构时代,基于 Spring、Spring…...