- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
微服务面试题及答案
问:什么是微服务?
答:微服务是一种架构风格,它把一个大型应用拆分成多个小型服务,每个服务专注于完成特定的业务功能。这些服务能独立部署、独立扩展,彼此通过轻量级的通信方式(像HTTP接口)来协作。
问:微服务和单体架构的主要区别是什么?
答:单体架构是把所有功能都打包在一个应用里,部署和扩展都是整个应用来操作,一旦某个模块出问题,可能会影响整个系统。而微服务是将功能拆分成独立服务,每个服务可单独部署、扩展和维护,某个服务出问题通常不会影响其他服务,灵活性更高,但架构更复杂,需要处理服务间通信等问题。
问:微服务之间如何进行通信?
答:主要有两种方式。一种是同步通信,比如使用RESTAPI、gRPC,客户端直接调用服务的接口来获取数据或执行操作,需要等待服务响应。另一种是异步通信,常用消息队列(如RabbitMQ、Kafka),服务发送消息到队列后就可以继续做其他事,不需要等待接收方立即处理,接收方从队列中获取消息再进行处理。
问:什么是服务注册与发现?常用的组件有哪些?
答:在微服务中,服务数量多且可能动态变化(比如扩容、缩容、部署新版本),服务注册就是服务启动时把自己的地址等信息注册到一个中心服务器上。服务发现则是其他服务通过这个中心服务器来找到它需要调用的服务的地址。常用的组件有Eureka、Consul、Nacos等。
问:API网关在微服务架构中的作用是什么?
答:API网关就像一个入口,客户端的请求先经过它。它可以做路由,把请求转发到对应的微服务;还能处理认证授权,验证客户端是否有权限访问;也能进行限流,防止某个服务被过多请求压垮;另外,还可以统一处理日志、监控等,让各微服务更专注于业务逻辑。
问:如何处理微服务中的分布式事务问题?
答:常见的有几种方案。比如使用本地消息表,一个服务操作后把消息存在本地表,通过定时任务发送到消息队列,另一个服务消费消息并处理,保证事务最终一致。还有Saga模式,把分布式事务拆分成多个本地事务,每个本地事务都有对应的补偿操作,一旦某个步骤失败,就执行前面步骤的补偿操作。另外,TCC(Try-Confirm-Cancel)模式也常用,Try阶段尝试资源检查和预留,Confirm确认执行,Cancel取消操作。
问:什么是服务熔断和服务降级?它们有什么区别?
答:服务熔断就像电路保险丝,当某个服务调用失败率过高时,为了防止故障扩散,会暂时停止调用这个服务,直接返回一个预设的响应。服务降级则是在系统压力大的时候,主动关闭一些非核心功能的服务,或者简化服务的处理逻辑,优先保证核心功能正常运行。区别在于,熔断是被动触发的,基于服务的故障情况;降级是主动触发的,基于系统整体负载情况。
问:微服务架构的优点和缺点分别是什么?
答:优点主要有:服务独立部署和扩展,灵活性高;技术栈可以多样化,不同服务可用不同的技术;团队可以按服务分工,提高开发效率;某个服务故障影响范围小。缺点有:架构复杂,服务间通信、分布式事务等问题难处理;运维成本高,需要管理多个服务的部署、监控等;测试难度大,涉及多个服务协作时测试更复杂。
问:在微服务中,如何实现负载均衡?
答:可以通过服务注册中心配合负载均衡算法来实现。客户端从服务注册中心获取可用的服务实例列表后,使用像轮询(依次调用每个实例)、随机(随机选择一个实例)、权重(根据实例性能分配不同权重,权重高的被调用次数多)等算法来选择一个实例进行调用。也可以用一些专门的负载均衡工具,比如Nginx,它可以作为反向代理,将请求分发到不同的服务实例上。
问:什么是配置中心?在微服务中为什么需要它?
答:配置中心是集中管理所有微服务配置的地方。在微服务架构中,服务数量多,每个服务可能有很多配置,而且配置可能需要动态修改。如果每个服务的配置都放在本地,修改配置时需要逐个服务去改,还得重启服务,很麻烦。配置中心可以集中管理这些配置,支持动态更新,服务能自动获取最新配置,不用重启,提高了配置管理的效率和灵活性。常用的配置中心有SpringCloudConfig、Nacos等。
问:如何监控微服务的运行状态?
答:可以从几个方面入手。一是收集服务的日志,用ELK(Elasticsearch、Logstash、Kibana)等工具集中管理和分析日志,方便排查问题。二是监控服务的metrics数据,比如接口响应时间、调用次数、错误率等,用Prometheus收集数据,Grafana展示图表,及时发现服务性能问题。三是追踪分布式调用,用Zipkin、SkyWalking等工具,记录一个请求从客户端到各个微服务的调用链路,了解请求的流转情况和每个环节的耗时,便于定位调用过程中的问题。
问:微服务拆分的原则是什么?
答:一般遵
文档评论(0)