开篇词:一次服务雪崩问题排查经历
服务雪崩:微服务中突发流量导致某个服务不可用 → 上游服务不可用 → 级联效应 → 整个系统不可用。

当依赖服务(如 QPS 为 50 的依赖 I)不可用时,上游请求被阻塞,级联故障愈演愈烈。
服务雪崩:微服务中突发流量导致某个服务不可用 → 上游服务不可用 → 级联效应 → 整个系统不可用。

当依赖服务(如 QPS 为 50 的依赖 I)不可用时,上游请求被阻塞,级联故障愈演愈烈。
服务注册和发现(Service Registration and Discovery)是微服务架构中最核心的基础设施之一。在微服务架构中,一个大型系统通常会被拆分为数十乃至上百个独立的服务,这些服务实例动态部署、弹性伸缩,IP 和端口随时可能变化。如果仍然依靠静态配置来维护服务调用关系,将面临配置臃肿、变更困难、容错性差等问题。
服务注册和发现机制通过引入一个注册中心(Registry)组件,让服务提供者在启动时主动注册自己的地址信息,服务消费者在调用时动态查询可用的服务提供者列表,从而实现了服务调用的解耦。它解决的核心问题包括:
服务路由(Service Routing)是指在微服务调用过程中,通过一组预定义的规则,从注册中心返回的可用服务实例列表中筛选出符合特定条件的实例子集,再将请求分发给这些实例的过程。它是服务治理中连接"服务发现"和"负载均衡"的关键环节。
在简单的微服务架构中,服务消费者获取到所有可用的服务提供者实例后,直接通过负载均衡算法选择一个实例调用即可。但随着业务规模的扩大和部署架构的复杂化,往往需要对流量进行更精细化的控制,例如:
在高并发场景下,为了应对瞬时海量请求的压力,保障系统的平稳运行,必须预估系统的流量阈值,通过限流规则阻断处理不过来的请求。
流量控制(Flow Control),根据流量、并发线程数、响应时间等指标,把随机到来的流量调整成合适的形状,即流量塑形。避免应用被瞬时的流量高峰冲垮,从而保障应用的高可用性。
复杂的分布式系统架构中的应用程序往往具有数十个依赖项,每个依赖项都会不可避免地在某个时刻失败。 如果主机应用程序未与这些外部故障隔离开来,则可能会被波及。

大型系统通常要面对高并发、高可用、海量数据等挑战。
为了提升系统整体的性能,可以采用垂直扩展和水平扩展两种方式。