SpringCloud微服务面试必答题目大全

需积分: 0 1 下载量 3 浏览量 更新于2024-08-04 收藏 1.82MB PDF 举报
"这篇文章收集了27个关于SpringCloud微服务的面试问题,涵盖了SpringCloud Netflix、SpringCloud Alibaba、Nacos、Eureka、Feign、Seata、Gateway和Zuul等多个关键组件,旨在帮助面试者准备微服务相关的技术面试。" SpringCloud微服务面试题详解: 1. **SpringCloudNetflix和SpringCloudAlibaba组件**: - SpringCloud Netflix 包括Eureka(服务发现)、Zuul(API网关)、Hystrix(断路器)、 Ribbon(客户端负载均衡器)等组件。 - SpringCloud Alibaba 提供了Nacos(服务发现与配置管理)、Sentinel(流量控制、熔断降级)、Seata(分布式事务解决方案)等组件。 2. **Nacos是CP还是AP?** - Nacos 是一个同时支持CP(Consistency一致性)和AP(Availability可用性)的分布式服务治理平台,具体使用哪种模式取决于具体场景和配置。 3. **Nacos作为注册中心选择CP还是AP?** - 如果对数据一致性要求较高,应选择CP模式;如果更注重服务的可用性,可选择AP模式。 4. **Nacos如何实现就近访问?** - 通常通过负载均衡策略,如轮询、随机或权重分配等方式,将请求分发到最近的服务实例上。 5. **Nacos底层负载均衡原理** - Nacos 内置了基于Netty的RPC框架,可以实现基于IP和端口的负载均衡策略。 6-7. **Nacos1.x和2.x注册中心架构流程** - 这两部分涉及Nacos的注册、发现和服务同步过程,具体细节包括客户端注册、心跳检测、服务列表同步等。 8. **Nacos中的Distro协议** - Distro协议是Nacos用于实现分布式配置和服务发现的数据同步协议。 9. **Eureka注册中心原理** - Eureka 采用服务心跳机制保持服务状态,并通过定期同步来确保服务列表的准确性。 10. **Eureka自我保护机制** - 当网络异常导致大量服务无法正常心跳时,Eureka会进入自我保护模式,防止因网络波动导致服务剔除。 11. **Eureka和Nacos对比** - 对比点可能包括:性能、稳定性、功能特性、社区支持和生态集成等。 12. **Nacos配置中心长轮询机制** - 长轮询允许客户端保持连接打开,直到有新的配置更新时才返回,提高了配置更新的实时性。 13. **Nacos配置加载优先级** - 配置加载的优先级通常为:应用内的配置 > Spring Cloud Bus推送的配置 > Nacos配置中心的配置。 14. **Nacos配置中心宕机会影响服务吗?** - 如果服务依赖于Nacos的动态配置,宕机可能会导致服务获取不到最新的配置,影响服务运行。 15. **配置中心技术选型** - 考虑因素包括:性能、稳定性、易用性、社区支持、扩展性等。 16. **Feign第一次调用耗时较长原因** - 可能是因为初始化、接口解析、连接建立等开销,可以通过缓存接口元数据和预热等方式优化。 17-18. **Feign认证传递和底层HTTP库** - Feign通过拦截器实现认证信息传递;默认使用HttpURLConnection,可替换为其他库如OkHttp以优化性能。 19. **2PC(两阶段提交)和3PC(三阶段提交)流程及优缺点** - 2PC主要优点是简单,缺点是可能导致阻塞和单点故障。 - 3PC通过预提交阶段缓解2PC的问题,但增加了复杂性,且仍可能存在阻塞风险。 20-21. **Seata支持的事务模式** - Seata 支持AT(Automatic Transaction)、TCC(Try-Confirm-Cancel)和Saga(长事务)等事务模式。 22. **Seata中xid全局传递** - Seata通过在请求链路中传播分布式事务ID(xid)来跟踪整个分布式事务。 23-24. **Gateway核心概念与服务平滑迁移** - Gateway 作为API网关,处理路由、过滤器等功能;实现服务平滑迁移可能涉及服务发现、健康检查和路由策略调整。 25. **Zuul架构及线程安全** - Zuul 采用过滤器链模型,每个请求都由独立线程处理,需注意并发安全问题,例如在过滤器中使用线程安全的数据结构。 以上是对SpringCloud微服务面试题的详细解答,涵盖了各个组件的关键知识点,可以帮助面试者深入了解和准备相关面试。