2025年微服务比武笔试真题及答案_第1页
2025年微服务比武笔试真题及答案_第2页
2025年微服务比武笔试真题及答案_第3页
2025年微服务比武笔试真题及答案_第4页
2025年微服务比武笔试真题及答案_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2025年微服务比武笔试真题及答案一、单项选择题(每题2分,共24分)1.微服务架构中,服务间通信通常采用哪种协议?A.FTPB.HTTP/REST或RPCC.SMTPD.ICMP答案B解析微服务架构中服务间调用常见方式为基于HTTP的RESTfulAPI或高性能RPC框架(如gRPC、Dubbo),而非文件传输、邮件或网络控制协议。2.以下哪个组件在微服务架构中负责服务的注册与发现?A.API网关B.配置中心C.注册中心D.消息队列答案C解析注册中心(如Nacos、Eureka、Consul)负责服务实例的注册、心跳维护与发现;API网关负责请求路由与过滤,配置中心负责配置管理,消息队列负责异步通信。3.SpringCloud中,用于声明式HTTP客户端调用的组件是?A.RibbonB.OpenFeignC.HystrixD.Zuul答案B解析OpenFeign通过接口加注解的方式声明式定义HTTP客户端,简化服务调用;Ribbon负责客户端负载均衡,Hystrix负责熔断降级,Zuul是网关组件。4.在微服务架构中,熔断器模式的主要作用是?A.提高服务响应速度B.实现服务间负载均衡C.当依赖服务故障时快速失败,防止级联故障D.加密服务间通信数据答案C解析熔断器模式(CircuitBreaker)在依赖服务出现故障或超时时快速返回降级结果,避免调用方线程被长时间占用,防止故障在服务间级联扩散。5.某服务实例在注册中心中注册后,需要通过心跳机制定期上报状态。若实例异常宕机,注册中心会在多久后将实例剔除(默认场景下)?A.立即剔除B.15秒C.30秒D.90秒答案D解析以Nacos为例,临时实例默认心跳间隔为5秒,若超过15秒未收到心跳则标记为不健康,超过30秒未收到则自动剔除。Eureka默认剔除时间为90秒(3个心跳周期)。本题按常见默认值考查。6.以下关于API网关的说法,错误的是?A.网关可以实现统一认证鉴权B.网关可以进行流量控制与限流C.网关通常部署在每个微服务内部作为独立模块D.网关可以动态路由到不同服务实例答案C解析API网关是独立部署的中间层组件,统一接收外部请求并转发至后端服务,而非嵌入在每个微服务内部。7.在微服务架构中,多个服务实例为了对数据库保持一致的数据更新,通常采用哪种方案?A.分布式锁+本地事务B.分布式事务(如Seata、两阶段提交)C.每个服务独立建库,不做任何同步D.使用定时任务批量刷数据答案B解析跨服务的数据一致性需要分布式事务方案,如Seata(AT/TCC/SAGA模式)、两阶段提交(2PC)等。选项C、D无法保证实时一致性,选项A无法解决跨库事务问题。8.关于配置中心(如NacosConfig/Apollo),以下描述正确的是?A.配置中心只能管理静态配置,不支持动态刷新B.配置中心将配置从代码中剥离,支持动态修改与实时下发C.配置中心的作用是替代数据库D.配置中心只能用于本地开发环境答案B解析配置中心的核心价值是将配置与代码分离,支持动态变更、灰度发布及版本管理,可作用于开发、测试、生产等多环境。9.在微服务架构中,实现链路追踪通常使用以下哪个技术栈?A.ELKB.Prometheus+GrafanaC.SkyWalking/Zipkin/JaegerD.Redis+Kafka答案C解析SkyWalking、Zipkin、Jaeger等是主流的分布式链路追踪系统,用于追踪一次请求在多个微服务间的完整调用链。ELK用于日志收集,Prometheus+Grafana用于监控告警。10.容器化部署微服务时,以下关于Docker与Kubernetes的关系说法正确的是?A.Docker是容器编排平台,Kubernetes是容器运行时B.Kubernetes是容器编排平台,Docker是容器运行时C.Docker与Kubernetes功能完全相同D.二者互不相关答案B解析Docker提供容器化运行环境,Kubernetes(K8s)负责容器的编排管理(调度、伸缩、滚动更新、服务发现等)。11.在微服务架构中,BFF(BackendforFrontend)模式的主要目的是?A.替代数据库B.为不同前端(Web、App、小程序)提供定制化的后端聚合接口C.取代消息队列D.减少服务间调用次数,因此必须部署在数据库旁边答案B解析BFF模式是针对不同客户端类型分别构建适配层,负责接口聚合、裁剪与适配,减少前端与服务端的直接耦合。12.微服务拆分时,以下哪个指标最不适合作为服务拆分的依据?A.业务功能域(按领域驱动设计划分)B.团队组织结构(康威定律)C.数据库表数量(表越多越拆)D.独立部署与扩展需求答案C解析服务划分应基于业务能力、领域边界、团队结构与独立部署需求。数据库表数量不能作为拆分独立指标,拆得过细会导致分布式复杂性剧增。二、多项选择题(每题3分,共18分。多选、错选不得分,少选一个扣1分,扣完为止)1.以下哪些属于微服务架构的常见挑战?A.服务间网络延迟与通信开销B.分布式事务一致性C.服务间依赖关系复杂带来的排障难度D.单体应用性能一定比微服务差答案A、B、C解析微服务带来性能开销、分布式事务、链路排障等挑战。选项D表述绝对,性能与业务场景、架构设计均相关,微服务并非一定性能更优。2.关于服务网格(ServiceMesh),以下说法正确的有?A.服务网格将服务间通信能力下沉到Sidecar代理B.Istio是常见的服务网格实现之一C.服务网格能提供流量管理、可观测性、安全认证能力D.服务网格会改变业务代码中的服务调用逻辑答案A、B、C解析服务网格的核心是透明代理,业务代码无感知(无需侵入修改调用逻辑)。选项D错误。3.关于Nacos注册中心,以下说法正确的有?A.支持临时实例与持久化实例B.临时实例使用心跳方式上报健康状态C.持久化实例使用主动探测方式检测健康状态D.Nacos只能作为注册中心,不能作为配置中心答案A、B、C解析Nacos同时支持服务注册发现与配置管理。临时实例通过心跳上报,持久化实例由服务端主动探测。选项D错误。4.以下哪些容错机制属于微服务高可用的常用手段?A.熔断B.限流C.降级D.重试(带退避策略)答案A、B、C、D解析熔断(快速失败)、限流(保护下游)、降级(提供兜底响应)、重试(超时重试,需配合退避与幂等)均是保障微服务高可用的常见手段。5.关于分布式事务方案Seata,以下说法正确的有?A.AT模式基于本地事务+全局锁实现,对业务侵入小B.TCC模式需要业务实现Try、Confirm、Cancel三个方法C.Saga模式适用于长事务,通过补偿方式回滚D.Seata只能用于单机部署场景答案A、B、C解析Seata支持AT、TCC、SAGA、XA等多种模式,其中AT模式对业务侵入性最低,Saga适合长事务流程编排。Seata本身支持集群部署。选项D错误。6.在服务部署与运维中,以下哪些属于不可变基础设施(ImmutableInfrastructure)原则?A.服务器启动后不进行运行时修改,变更时重新构建镜像B.使用蓝绿部署或金丝雀发布降低发布风险C.通过版本化镜像与容器编排保持一致环境D.登录服务器手工修改配置文件后重启应用答案A、B、C解析不可变基础设施强调环境的一致性、可重复构建与不可修改性。传统手工改配置的方式违背该原则。选项D错误。三、判断题(每题1分,共8分)1.在微服务架构中,服务间调用必须使用消息队列,否则架构不完整。答案错误2.客户端负载均衡(如Ribbon/SpringCloudLoadBalancer)是在服务消费方实现负载均衡逻辑。答案正确3.分布式事务中,两阶段提交(2PC)协议存在同步阻塞与协调者单点问题。答案正确4.Eureka注册中心中,服务提供者向Eureka发送心跳,默认间隔为30秒,若90秒内未收到心跳则剔除实例。答案正确5.在Kubernetes中,Service的ClusterIP是集群外部可访问的固定IP。答案错误解析ClusterIP是集群内部虚拟IP,仅集群内可访问。外部访问需使用NodePort、LoadBalancer或Ingress。6.幂等性设计指的是无论请求执行一次还是多次,结果一致且不产生副作用。答案正确7.配置中心的配置变更可以不用经过审批,直接推送到生产环境。答案错误解析生产环境配置变更应经过权限审批、灰度发布与审计合规流程,避免直接推送引发线上事故。8.熔断器在三态(关闭、打开、半开)中,半开状态允许少量请求通过以探测服务恢复情况。答案正确四、简答题(每题8分,共32分)1.简述微服务架构与单体架构的主要区别及微服务的优缺点。主要区别:•单体架构将全部功能打包为一个应用,统一部署、统一扩展;微服务按业务域拆分为多个独立服务,各自独立开发、部署与伸缩。•单体架构通常共享一个数据库;微服务提倡数据隔离,每个服务拥有独立数据存储。•单体架构通信为进程内方法调用;微服务采用网络通信(HTTP/RPC/消息队列)。优点:独立部署、技术异构、故障隔离、按需伸缩、团队自治等。缺点:分布式复杂性(网络延迟、分布式事务、链路追踪)、运维成本高、服务间容错要求高、数据一致性保障难度大等。2.简述熔断、限流、降级三者的区别与联系。•熔断(CircuitBreaker):依赖服务故障或超时时,快速失败并进入打开状态,后续请求直接返回降级结果,不再访问下游。侧重“防止故障扩散”,针对的是下游故障。•限流(RateLimiting):限制单位时间内的请求数量/并发数,超过阈值的请求被拒绝或排队,保护自身服务不被流量冲垮。侧重“保护系统容量”,针对的是入口流量。•降级(Degradation):在系统压力过大或依赖不可用时,主动返回兜底数据或关闭非核心功能,保障核心链路可用。侧重“牺牲次要保主要”。•联系:三者均为高可用容错手段,常组合使用——限流在前保护入口,服务间调用通过熔断防止级联故障,失败时通过降级提供有损但可用的响应。3.简述在微服务架构中,消息队列的典型使用场景及选择消息队列时需考虑的因素。典型场景:•异步解耦(如订单系统与积分系统、通知系统解耦);•流量削峰填谷(秒杀场景先将请求写入MQ,再异步处理);•事件驱动架构(领域事件发布与订阅);•日志采集与数据处理(大规模数据异步传输)。选型考虑因素:•吞吐量与延迟要求;•消息可靠性(持久化、确认机制、重试策略);•顺序消息保证能力;•事务消息支持;•集群部署与高可用方案;•社区活跃度与运维成本。4.请简要说明什么是优雅上下线,以及在微服务中实现优雅下线的常用方式。答案定义:优雅下线指服务实例在停止前先完成以下动作——将自身从注册中心摘除、停止接收新请求、等待处理中的请求完成后再退出,避免因实例停止导致请求失败或连接中断。常用实现方式:•注册中心主动注销:JVM关闭钩子中调用注册中心API摘除实例;•启用服务提供端的优雅停机(如SpringBoot中server.shutdown=graceful);•服务消费方侧通过健康检查(如KubernetesReadinessProbe)感知实例不可用后摘除流量;•Kubernetes环境利用preStop钩子做延迟下线,配合Service端点更新;•使用负载均衡器的主动健康检查及时剔除下线实例。五、案例分析题(每题9分,共18分)1.某电商系统采用微服务架构(订单服务、库存服务、支付服务、用户服务)。某日大促期间,用户反馈“下单页面卡顿、部分订单提交后提示系统繁忙”。运维监控显示:订单服务CPU使用率高达95%,库存服务响应时间从50ms上升至5s,且订单服务调用库存服务的线程池大量堆积。请分析:(1)该现象可能反映微服务架构中的什么问题?(2)结合微服务容错机制,给出至少三种解决方案。答案:(1)该现象是典型的服务雪崩效应前兆:订单服务作为调用方,其线程池被库存服务的响应变慢所拖垮,进而导致自身CPU高企、请求堆积,最终表现为下单卡顿、超时失败。根因是库存服务成为性能瓶颈,故障通过同步调用链向上游传导。(2)解决方案:-熔断:在订单服务调用库存服务时配置熔断器(如Resilience4j、Sentinel),库存服务响应超时或错误率达到阈值后,快速失败,不再继续占用线程等待。-限流:在订单服务入口根据系统容量进行限流(如令牌桶、漏桶算法),保护订单服务自身不被峰值流量压垮。-降级:当库存服务不可用时,返回降级兜底数据(如“当前库存紧张,请稍后重试”),或走异步重试队列,避免同步阻塞。-线程池隔离(舱壁模式):为调用库存服务的线程池设置独立隔离,即使库存服务故障,也不会耗尽订单服务的全部线程资源。-缓存:对库存热点数据使用Redis缓存,减轻库存服务数据库压力。-异步化:将扣减库存操作改为MQ异步处理,降低同步依赖。2.某金融系统微服务

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论