MST

星途 面试题库

面试题:微服务架构中服务治理的常见策略有哪些

请阐述在微服务架构里,服务治理层面常见的策略,例如负载均衡、熔断、限流等,说明每种策略的作用及简单原理。
29.6万 热度难度
后端开发微服务架构

知识考点

AI 面试

面试题答案

一键面试

负载均衡

  • 作用:将客户端的请求均匀分配到多个服务实例上,避免单个实例负载过高,提高系统的可用性和性能,充分利用集群资源。
  • 简单原理:常见的负载均衡算法有轮询(依次将请求分配到每个实例)、随机(随机选择一个实例)、加权轮询(根据实例的性能分配不同权重,按权重比例分配请求)、最少连接(将请求分配到当前连接数最少的实例)等。负载均衡器基于这些算法,在接收到客户端请求时,选择合适的服务实例来处理请求。

熔断

  • 作用:当某个服务出现故障或响应时间过长时,为防止整个系统因该服务不可用而产生连锁反应导致雪崩,熔断机制可以暂时切断对该服务的调用,快速返回错误信息给调用方,避免调用方长时间等待或消耗大量资源,保证系统其他部分的正常运行。
  • 简单原理:通常有三种状态,关闭(Closed)状态下正常调用服务;当失败次数或失败率达到一定阈值,切换到打开(Open)状态,此时直接返回错误给调用方,不再调用实际服务;经过一段时间后进入半打开(Half - Open)状态,尝试少量调用服务,如果调用成功则恢复到关闭状态,若再次失败则回到打开状态。

限流

  • 作用:限制对某个服务的请求流量,防止因流量过大导致服务过载甚至崩溃,保护服务的稳定性,确保关键业务能正常运行。
  • 简单原理:常见的限流算法有令牌桶算法(系统以固定速率生成令牌放入桶中,请求到达时从桶中获取令牌,若桶中无令牌则拒绝请求)和漏桶算法(请求如水流一样流入桶中,以固定速率从桶底部流出处理,若桶满则后续请求被丢弃)。基于这些算法,在服务入口处对请求流量进行控制。

服务注册与发现

  • 作用:服务实例启动时向注册中心注册自身信息,其他服务可以从注册中心获取所需服务的地址等信息。实现了服务之间的解耦,方便服务的动态扩展和维护,使系统能够自动感知新加入或下线的服务。
  • 简单原理:服务提供者将自身的服务信息(如IP、端口、服务名称等)注册到服务注册中心。服务消费者从注册中心查询所需服务的实例列表,然后根据负载均衡策略选择一个实例进行调用。注册中心会定期检测服务实例的健康状态,移除不健康的实例。

健康检查

  • 作用:确保系统中的服务实例处于正常运行状态,及时发现并隔离故障实例,保证服务的质量和稳定性,避免将请求发送到不可用的实例上。
  • 简单原理:可以通过定期向服务实例发送心跳请求,若服务实例能正常响应,则认为该实例健康;也可以检查服务实例的关键指标,如CPU使用率、内存使用率、响应时间等,当指标超出正常范围时判定为不健康。对于不健康的实例,负载均衡器不再将请求转发给它,注册中心也可以将其从可用实例列表中移除。