【微服务】面试 1、概述和服务发现

微服务面试题

在这里插入图片描述

课程内容架构

  1. Spring Cloud 部分
    • 服务注册:重点讲解(Nacos)和(Eureka),这是微服务架构中实现服务发现与注册的关键组件,确保服务间能够相互定位与通信。
    • 负载均衡:涵盖 ribbon 的负载均衡策略及自定义负载均衡方法。ribbon 可依据不同规则将请求合理分配到多个服务实例,如轮询、随机等策略,自定义负载均衡则能根据特定业务需求灵活调整分配方式。
    • 熔断和降级:在微服务系统面临高并发或部分服务故障时,熔断机制可及时切断故障服务调用链路,防止故障蔓延;降级策略则通过暂时关闭或简化非关键服务功能,保障核心服务稳定运行,确保系统整体可用性。
    • 监控:介绍 sky working 链路追踪技术,它能够对微服务调用链路进行跟踪记录,帮助开发人员快速定位问题根源,如请求延迟、错误发生位置等,有效提升系统运维与故障排查效率。
  2. 业务相关内容
    • 限流:随着业务快速发展,流量可能超出服务承载能力,需进行限流。主要讲解漏桶算法和令牌桶算法,漏桶算法以固定速率处理请求,令牌桶算法则是按一定速率生成令牌,请求需获取令牌才能被处理,通过这些算法可有效控制进入系统的流量。
    • 分布式事务:先阐述 CAP 和 BASE 理论,CAP 强调强一致性和分区容错性,BASE 则在牺牲一定一致性的基础上保证可用性和分区容错性。接着讲解分布式事务的解决方案,最后介绍主流分布式事务框架 SEATA,其为解决微服务架构下分布式事务问题提供了可靠的实现方式,确保跨多个服务的事务操作数据一致性。
    • 分布式服务接口幂等:在分布式环境中,由于网络波动等原因可能导致同一请求多次发送,幂等方案可保证同一操作多次执行结果与一次执行结果相同,避免重复操作带来的数据不一致等问题。
    • 分布式任务调度:基于插槽 job 讲解如何在分布式系统中合理安排任务执行时间、顺序及资源分配,确保任务高效、准确执行,满足业务定时或触发式任务处理需求。
  3. 消息中间件部分
    • 主要包含 RabbitMQ 和 Kafka。消息中间件在微服务架构中起着重要的异步通信、解耦作用,RabbitMQ 以其丰富的消息路由机制和可靠性保障在企业级应用中广泛使用,Kafka 则擅长处理高吞吐量的实时数据流场景。

在这里插入图片描述

一、Spring Cloud 面试题引入

  • 面试官常问 Spring Cloud 5 大组件相关问题,如“spring cloud 5 大组件有哪些”或“spring cloud 组件有哪些”,旨在考查对 Spring Cloud 的基本认识。
  • 此题为送分送命题,即使经验丰富也需充分准备,若回答不出可能导致面试无法继续。

二、基于架构图分析组件

  • 展示微服务项目简易架构图,微服务按业务划分(如用户、文章等)。
  • 微服务间远程调用需管理服务地址,引出注册中心组件。
  • 远程调用组件在服务集群场景下需结合 ribbon 进行负载均衡。

在这里插入图片描述

三、Spring Cloud 五大组件详解

  • 注册中心:管理微服务地址,是重要基础组件。
  • Feign:实现微服务间通信。
  • ribbon:用于服务集群的负载均衡。
  • hystrix:在远程调用中处理降级和熔断。
  • 网关:作为微服务对外暴露接口的统一入口。
  • 虽 Spring Cloud 组件不止 5 个,但面试时这 5 个必须回答,可结合项目架构图或示例图进行说明。

四、回答面试题及阿里体系组件对比

  • 回答 Spring Cloud 五大组件为注册中心(如 Eureka)、负载均衡(ribbon)、远程调用(Feign)、熔断(Hystrix)、网关(Gateway)。
  • 对比阿里巴巴体系组件:注册中心和配置中心可用 Nacos,负载均衡仍为 ribbon,服务保护是 Sentinel,网关为 Gateway。

在这里插入图片描述


注册中心面试题

一、面试题引入

  • 核心问题:服务注册和发现的含义以及 Spring Cloud 如何实现。此问题用于考察应聘者对微服务中注册中心的理解与运用,常见注册中心有(Eureka)、(Nacos)、Zookeeper(常与 Dubbo 搭配),重点讲解 Eureka 和 Nacos。
  • 回答要点:先说明项目所用注册中心,再分别阐释服务注册与发现机制。

在这里插入图片描述

二、Eureka 注册中心详解

  • 作用阐释:在微服务架构中,如订单服务(Order Service)调用用户服务(User Service)场景下,若用户服务存在集群,注册中心可管理服务地址。服务提供者(如 User Service)启动时将自身信息(服务名、IP、端口等)注册到 Eureka,服务消费者(如 Order Service)从 Eureka 拉取信息,并经负载均衡选择服务器调用。
  • 工作流程:服务提供者启动注册信息,注册中心存储;服务消费者从注册中心拉取信息,通过负载均衡确定调用目标。
  • 健康监控:服务提供者每隔 30 秒向 Eureka 发送心跳报告健康,若 90 秒未收到心跳,Eureka 认定实例宕机并从服务列表删除。
  • 回答面试官问题要点:告知项目采用 Eureka 作为 Spring Cloud 核心组件,解释服务注册是提供者信息注册到 Eureka 保存,服务发现是消费者拉取信息,有集群和消费者时利用负载均衡算法选择调用,同时提及服务监控的心跳机制及宕机处理。

在这里插入图片描述

三、Nacos 与 Eureka 对比

在这里插入图片描述

  • 相同点:均支持服务注册、拉取及以心跳方式进行健康检测。
  • 不同点
    • 实例类型与监测方式:Nacos 有临时实例(默认创建,采用心跳监测健康)和非临时实例(需设置,由 Nacos 主动探测)之分,Eureka 无此概念。
    • 信息变更处理:服务地址变更时,Nacos 注册中心主动推送更新信息,Eureka 仅依靠服务消费者拉取信息。
    • 集群模式与功能扩展:Nacos 集群默认 AP 模式,存在非临时实例时为 CP 模式,且 Nacos 3 支持配置中心,Eureka 仅为注册中心。
  • 回答面试官问题要点:先指出共同点,再详细说明不同点,包括实例类型差异、信息变更处理、集群模式及功能扩展等方面。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Elasticsearch学习(1) : 简介、索引库操作、文档操作、RestAPI、RestClient操作

目录 1.elasticsearch简介1.1.了解es1.2.倒排索引正向索引和倒排索引 1.3.es的一些概念:文档和字段;索引和映射;Mysql与ES1.4.安装es、kibana部署单点es部署kibanaIK分词器安装IK分词器与测试扩展与停用词词典总结 部署es集群 2.索引库操作2.1.mapping映…

基于html5实现音乐录音播放动画源码

源码介绍 基于html5实现音乐录音播放动画源码是一款类似Shazam的UI,点击按钮后,会变成为一个监听按钮。旁边会有音符飞入这个监听按钮,最后转换成一个音乐播放器。 效果预览 源码获取 基于html5实现音乐录音播放动画源码

汽车基础软件AutoSAR自学攻略(四)-AutoSAR CP分层架构(3) (万字长文-配21张彩图)

汽车基础软件AutoSAR自学攻略(四)-AutoSAR CP分层架构(3) (万字长文-配21张彩图) 前面的两篇博文简述了AutoSAR CP分层架构的概念,下面我们来具体到每一层的具体内容进行讲解,每一层的每一个功能块力求用一个总览图,外加一个例子的图给大家进…

DDD - 微服务设计与领域驱动设计实战(上)_统一建模语言及事件风暴会议

文章目录 Pre概述业务流程需求分析的困境统一语言建模事件风暴会议什么是事件风暴(Event Storming)事件风暴会议 总结 Pre DDD - 软件退化原因及案例分析 DDD - 如何运用 DDD 进行软件设计 DDD - 如何运用 DDD 进行数据库设计 DDD - 服务、实体与值对…

模拟SpringIOCAOP

一、IOC容器 Ioc负责创建,管理实例,向使用者提供实例,ioc就像一个工厂一样,称之为Bean工厂 1.1 Bean工厂的作用 先分析一下Bean工厂应具备的行为 1、需要一个获取实例的方法,根据一个参数获取对应的实例 getBean(…

科研绘图系列:R语言绘制Y轴截断分组柱状图(y-axis break bar plot)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍特点意义加载R包数据下载导入数据数据预处理画图输出总结系统信息介绍 Y轴截断分组柱状图是一种特殊的柱状图,其特点是Y轴的刻度被截断,即在某个范围内省略了部分刻度。这种图表…

django基于 Python 的考研学习系统的设计与实现

以下是对Django基于Python的考研学习系统的设计与实现: 一、系统概述 Django基于Python的考研学习系统是一个为考研学子提供一站式学习辅助的平台。它整合了丰富的学习资源、学习计划制定、学习进度跟踪以及交流互动等功能,旨在满足考生在备考过程中的…

C#,图论与图算法,有向图(Direct Graph)广度优先遍历(BFS,Breadth First Search)算法与源程序

1 图的广度优先遍历 图的广度优先遍历(或搜索)类似于树的广度优先遍历(参见本文的方法2)。这里唯一需要注意的是,与树不同,图可能包含循环,因此我们可能再次来到同一个节点。为了避免多次处理节…

Kafka 主题管理

主题作为消息的归类,分区则是对消息的二次归类。分区可以有一至多个副本,每个副本对应一个日志文件。 分区的划分不仅为Kafka提供了可伸缩性、水平扩展的功能,还通过多副本机制来为Kafka提供数据冗余以提高可靠性。 图 主题、分区、副本和日…

案例研究:UML用例图中的结账系统

在软件工程和系统分析中,统一建模语言(UML)用例图是一种强有力的工具,用于描述系统与其用户之间的交互。本文将通过一个具体的案例研究,详细解释UML用例图的关键概念,并说明其在设计结账系统中的应用。 用…

51c自动驾驶~合集46

我自己的原文哦~ https://blog.51cto.com/whaosoft/13050104 #世界模型会是L3自动驾驶的唯一解吗 三维空间占有率(3D Occupancy)预测的目的是预测三维空间中的每个体素是否被占有,如果被占有,则对应的体素将被标记。3D Semant…

忘记了PDF文件的密码,怎么办?

PDF文件可以加密,大家都不陌生,并且大家应该也都知道PDF文件有两种密码,一个打开密码、一个限制编辑密码,因为PDF文件设置了密码,那么打开、编辑PDF文件就会受到限制。忘记了PDF密码该如何解密? PDF和offi…

fastapi 使用

参考: https://fastapi.tiangolo.com/zh/tutorial/first-steps/https://fastapi.tiangolo.com/zh/tutorial/first-steps/ FastAPI 用于基于标准 Python 类型提示使用 Python 构建 API,使用 ASGI 的标准来构建 Python Web 框架和服务器。所有简单理解&a…

单片机(MCU)-简单认识

简介: 内部集成了CPU,RAM,ROM,定时器,中断系统,通讯接口等一系列电脑的常用硬件功能。 单片机的任务是信息采集(依靠传感器),处理(依靠CPU)&…

解决el-table表格数据量过大导致页面卡顿问题 又名《umy-ui---虚拟表格仅渲染可视区域dom的神》

后台管理系统的某个页面需要展示多个列表 数据量过多 页面渲染dom卡顿 经调研发现两个组件 pl-table和umy-ui (也就是u-table) 最终决定使用umy-ui 它是专门基于 Vue 2.0 的桌面端组件库 流畅渲染表格万级数据 而且他是对element-ui的表格做了二次优化…

提升租赁效率的租赁小程序全解析

内容概要 在如今快节奏的生活中,租赁小程序俨然成为了提升租赁效率的一把利器。无论是个人还是企业,都会因其便捷的功能而受益。简单来说,租赁小程序能让繁琐的租赁流程变得轻松、高效。在这里,我们将带您畅游租赁小程序的海洋&a…

【2024年华为OD机试】(C卷,100分)- 输出指定字母在字符串的中的索引(Java JS PythonC/C++)

一、问题描述 题目描述 给定一个字符串,把字符串按照大写在前小写在后排序,输出排好后的第 K 个字母在原来字符串的索引。相同字母输出第一个出现的位置。 输入描述 无 输出描述 无 用例 用例 1 输入: hAkDAjByBq 4输出: 6说明: 排好序后 AAB…

Vue sm3国密 IE模式报错处理

1、sm-crypto 转义错误 查看报错信息包名 在vue.config.js的transpileDependencies中把依赖包添加进去,让babel能够转译sm-crypto包 babel.config.js module.exports {presets: [[vue/app, {useBuiltIns: entry}]] }2、exports.destroy (() > { … }&a…

超燃预告!Origin百图绘制系列即将登场

Hello,大家好 这里是练习时长两年半的菜狗~ 持续更新各种竞赛,科研,保研,学习干货ing 回想刚开始打比赛那会,啥都不懂,就从用 Excel 画图起步,绘制的图形实在太难看。后来运用 Matlab&#xf…

burpsiute的基础使用(2)

爆破模块(intruder): csrf请求伪造访问(模拟攻击): 方法一: 通过burp将修改,删除等行为的数据包压缩成一个可访问链接,通过本地浏览器访问(该浏览器用户处于登陆状态&a…