可扩展系统中的服务与分布式缓存技术
无状态服务的优势与挑战
无状态服务在可扩展系统中具有显著优势。当无状态服务出现故障时,客户端会收到异常并进行重试,请求会被路由到其他正常运行的服务副本。若服务因临时网络中断而变慢,负载均衡器会将其从服务组中移除,直至该服务通过健康检查或彻底失败。由于所有应用状态要么被外部化,要么由客户端在每个请求中提供,负载均衡器能够轻松处理服务故障。
无状态服务提升了系统的可扩展性,简化了故障处理场景,减轻了服务管理的负担。对于可扩展应用而言,这些优势远远超过了劣势,因此像Netflix这样的大型互联网网站广泛采用了无状态服务。
不过,通过负载均衡扩展一组服务时,可能会使下游服务或数据库不堪重负。这就好比在高速公路上增加车道,如果道路尽头是单车道和交通信号灯,反而会导致更严重的交通混乱。
服务与负载均衡
服务是可扩展软件系统的核心。服务通过API定义与客户端的交互契约,明确自身的功能。服务在应用服务器容器环境中执行,该环境托管服务代码,并将传入的API请求路由到相应的处理逻辑。应用服务器高度依赖编程语言,通常提供多线程编程模型,允许服务同时处理多个请求。当容器线程池中的线程全部被占用时,应用服务器会对请求进行排队,直到有线程可用。
随着服务请求负载的增加,可以使用负载均衡器进行水平扩展,将请求分发到多个实例。这种架构还提供了高可用性,因为多服务配置使应用能够容忍个别实例的故障。负载均衡器将服务实例作为一个池进行管理,利用负载分配策略为每个请求选择目标服务副本。
无状态服务易于扩展,并且通过允许负载均衡器将请求重新发送到响应正常的目标,简化了故障处理。虽然大多数负载均衡器支持使
超级会员免费看
订阅专栏 解锁全文
6万+

被折叠的 条评论
为什么被折叠?



