springcloud高频面试题

news2025/1/19 20:37:08

springcloud的组件有哪些

注册中心:euraka、nacos、zookeeper
注册中心及配置中心:nacos
远程调用:feign、dubbo
负载均衡:ribbon
服务熔断:hystrix、sentinel
网关:zuul、gateway
在这里插入图片描述
eureka注册中心的作用
在这里插入图片描述

△面试题:服务注册和发现是什么意思?springcloud是如何实现服务注册和发现的?

我们当时项目采用的eureka作为注册中心,这个也是spring cloud体系中的一个核心组件。

服务注册:服务提供者需要把自己的信息注册到eureka,由eureka来保存这些信息,比如服务名称、ip、端口等等。

服务发现:消费者向eureka拉取服务列表信息,如果服务提供者有集群,则消费者会利用负载均衡算法,选择一个发起调用。

服务监控:服务提供者会每隔30秒向eureka发送心跳,报告健康状态,如果eureka服务90秒没接收到心跳,从eureka中剔除

△面试题:nacos和eureka的区别

nacos和eureka的共同点

  • 都支持服务注册和服务拉取
  • 都是注册中心
  • 都支持服务提供者心跳方式做健康方式
    如果是临时实例,那么nacos和eureka的工作流程基本一致

nacos和eureka的不同点

  • nacos支持服务端主动检测提供者状态,临时实例采用心跳模式,非临时实例采用主动检测模式
  • 临时实例心跳不正常会被剔除,非临时实例心跳不正常不会被剔除
  • nacos支持服务列表变更的消息推送模式,服务列表能够及时更新
  • nacos集群默认采用AP模式,当集群中存在非临时实例时,才采用CP模式;eureka采用AP模式
  • nacos还支持配置中心;eureka仅仅是注册中心

nacos默认是临时实例,ephemeral配置默认为true
在这里插入图片描述

CAP理论

CAP即

  • Consistency(一致性)
  • Availability(可用性)
  • Partition tolerance(分区容忍性)
    轻松理解CAP理论

ribbon负载均衡是如何实现的?
微服务的负载均衡主要使用了一个组件Ribbon,比如,我们在使用feign远程调用的过程中,底层的负载均衡就是使用了ribbon。

ribbon执行流程
在这里插入图片描述

ribbon负载均衡策略有哪些?

  • RoundRobinRule:简单轮询服务列表来选择服务器
  • WeightedResponseTimeRule:按照权重来选择服务器,响应时间越长,权重越小
  • RandomRule:随机选择一个可用的服务器
  • BestAvailableRule:忽略那些短路的服务器,并选择并发数较低的服务器
  • RetryRule:重试机制的选择逻辑
  • AvailabilityFilteringRule:可用性敏感策略,先过滤非健康的,再选择连接数较小的实例
  • ZoneAvoidanceRule: ribbon默认策略,以区域可用的服务器为基础进行服务器的选择。使用Zone对服务器进行分类,这个Zone可以理解为一个机房、一个机架等。再对Zone内的多个服务做轮询

如何指定负载均衡策略?
通过实现IRule接口,然后再通过配置类或配置文件配置即可,有两种方式
在这里插入图片描述
什么是服务雪崩?怎么解决这个问题?
服务雪崩是指一个服务失败导致整条链路的服务都出现问题的情形。
在这里插入图片描述

服务降级
服务降级是服务自我保护或者保护下游服务的一种方式。用于确保服务不会受请求突增从而影响导致不可用。一般在实际开发中调用feign组件整合,实现服务降级逻辑。

feign示例
在这里插入图片描述
Hystrix熔断机制

Hystrix熔断机制,用于监控微服务调用情况,默认是关闭的。
开启需要在引导类上添加注解:@EnableCircuitBreaker,若默认检测到10秒内请求的失败率超过50%,就触发熔断机制。之后每隔5秒重新尝试请求微服务,如果微服务不能响应,继续走熔断机制。如果微服务可达,则关闭熔断机制,恢复正常请求。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/574355.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JAVA面试八股整理——基础部分

JAVA 基础 JVM JDK JRE JVM java虚拟机,针对不同的系统,使用相同的字节码会给出相同结果。一次编译,随处可运行 JDK Java SDK 提供给开发者使用,创建和编译Java程序。包含了JRE,同时包含了其它工具(jav…

Deepin 23的最佳新功能和亮点

Deepin是一个基于Linux的操作系统,以其美观、简洁和易用的用户界面而闻名。Deepin 23是Deepin操作系统的最新版本,引入了许多令人兴奋的新功能和亮点,为用户提供了更好的体验和更多的功能。 本文将详细介绍Deepin 23的最佳新功能和亮点。 1…

教你彻底卸载MySQL 并重装(保姆级教程 )

前言:都是自己踩过的坑(其他博主也有,不过我的特殊,按步骤走完重新安装仍要输入原密码,本篇主要解决和我问题类似的情况),跟着以下步骤走就行。 步骤一:关闭MySQL服务 右击【计算机】…

@Transactional @Aysnc 循环依赖 事务同步问题

文章目录 学习链接场景最初版本TestControllerTestService问题 Lazy版本 事务同步报错版本:TestServiceLazy正常启动版本(有问题)Lazy 注册事务同步 学习链接 Async学习及循环依赖 场景 我们要做的事情很简单: 现在我们需要…

高校智能用电管理系统的应用探讨

摘 要:随着现代科学技术的发展,在高校中开始广泛应用智能化技术,改善学生宿舍的用电管理模式,提高宿舍的管理水平,有利于实现高校宿舍用电管理的科学化。本文主要阐述传统高校宿舍用电管理模式,设计高校智能…

tektronix泰克TDS3054B数字荧光示波器

TDS3054B示波器体积小巧、便于携带、可用电池供电,所以可在任何需要的地方使用。安装电池 后,其重量还不到5 公斤。即便是在现场工作,也可通过选购的插入式热敏打印机当场打印测量 结果。 用户还可通过选购的应用模块轻而易举地使TDS3000B 系…

Web3小白科普系列:加密社区行业黑话全解(第一弹)

加密货币的快速发展创造了属于自己的全新语言,其中充满了黑话和首字母缩写,可能会让新手不知所措。本期《Web3小白科普系列:加密社区行业黑话全解》旨在解释加密世界中经常使用的、旁人难以解读的术语。我们将深入探究流行俚语的起源和含义&a…

专转本大忌,老实说这样备考真的考不上

(1)目标院校定太高,报考全凭主观臆断,没有深入了解学校专业和今年的考情,结果自身实力不够导致错失升本的机会。 (2)盲目追求学习时间却不追求效率,经常熬夜通宵学习,结…

开发工具---Eclipse 教程Ⅰ

Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。 Eclipse 是 Java 的集成开发环境(IDE),当然 Eclipse 也可以作为其他开发语言的集成开发环境,如C,C,PHP,和 Ruby 等。 Eclipse 附带…

JavaScript面向对象编程

在这里插入代码片## 1. 构造函数和new命令 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" con…

PLX31-EIP-MBS 以太网/IP到Modbus串行

PLX31-EIP-MBS ProSoft Technology的EtherNet/IP to Modbus串行通信网关允许在EtherNet/IP PACs或设备与支持Modbus的PACs或设备之间进行高速双向数据传输。 EtherNet/IP PACs包括Rockwell Automation ControlLogix和CompactLogix&#xff0c;以及几款施耐德电气控制器。Mod…

NameServer总结

NameServer是一个注册中心&#xff0c;提供服务注册和服务发现的功能。NameServer可以集群部署&#xff0c;集群中每个节点都是对等的关系&#xff08;没有像ZooKeeper那样在集群中选举出一个Master节点&#xff09;&#xff0c;节点之间互不通信。服务注册 Broker启动的时候会…

Eclipse教程Ⅲ

Eclipse 菜单 Eclipse 查看的菜单栏通常包含以下几个菜单&#xff1a; File 菜单Edit 菜单Navigate 菜单Search 菜单Project 菜单Run 菜单Window 菜单Help 菜单 通过 Eclipse 插件你可以添加新的菜单和菜单项。 菜单描述 菜单名描述FileFile 菜单运行你打开文件&#xff0c;…

同余方程 乘法逆元 扩展欧几里得算法 5.26

同余方程 乘法逆元 扩展欧几里得算法 526 同余方程 乘法逆元 扩展欧几里得算法_哔哩哔哩_bilibili 给定整数a,b,m&#xff0c;求解同余方程axb(mod m). 如果x存在整数解&#xff0c;则输出任意一个&#xff1b; 如果不存在&#xff0c;则输出none 例&#xff1a; 8x4(mod…

动态线程池 dynamic-tp 源码

目录 1. 介绍 2. Spring 环境整合配置源码 2.1 DtpBeanDefinitionRegistrar 2.2 DtpPostProcessorRegistrar 2.3 ApplicationContextHolder 2.4 DtpBaseBeanConfiguration 2. 动态线程池 DtpLifecycle 生命周期源码 3. 动态线程池 DtpRegistry 注册源码 4. 动态线程池…

基于51单片机的两路数字电压表Protues仿真设计

目录 一、设计背景 1.1、数字电压表的发展历程 1.2、课题的意义和目的 二、实现功能 三、仿真演示 四、部分程序展示 一、设计背景 1.1、数字电压表的发展历程 数字电压表简称DVM&#xff0c;它是采用数字化测量技术设计的电压表。从性能来看&#xff1a;数字电压表的发展从…

MYSQL索引连环18问(上)

MYSQL索引连环18问&#xff08;上&#xff09; 1.索引是什么&#xff1f; 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分)&#xff0c;它们包含着对数据表里所有记录的引用指针。索引是一种数据结构。数据库索引&#xff0c;是数据库管理系统中一个排序的…

PLX31-EIP-SIE 以太网/IP到西门子工业以太网

ProSoft Technology的EtherNet/IP to Siemens工业以太网通信网关允许支持EtherNet/IP的控制器或设备与西门子S7 PACs(包括S7-200s、S7-300s、S7-400s、S7-1200和S7-1500 PACs)之间进行高速双向数据传输。 此外&#xff0c;该网关还包括几个功能&#xff0c;包括数据优先级&…

我在GPT小程序开发中踩过的5个坑

坑1&#xff1a;没有充分了解需求 在GPT小程序开发中&#xff0c;充分了解需求十分重要。如果你没有认真地与客户交流&#xff0c;并理解他们的需求和期望&#xff0c;那么你很可能会浪费很多时间在错误的方向上。 坑2&#xff1a;没有使用合适的开发工具 在GPT小程序开发中…

Shell脚本攻略:Shell编程规范与变量

一、理论 1.Shell脚本编程规范 &#xff08;1&#xff09;Shell简介 Linux 系统中的 Shell 是一个特殊的应用程序&#xff0c;它介于操作系统内核与用户之间&#xff0c;充当 了一个“命令解释器”的角色&#xff0c;负责接收用户输入的操作指令&#xff08;命令&#xff09…