负载均衡算法
负载均衡算法包括随机、轮询、最小活跃数、源地址哈希和一致性哈希等。随机适用于性能一致的服务器,可加权重升级为加权随机;轮询按顺序调用,支持加权分配;最小活跃数优先选择负载低的服务器;源地址哈希确保同一IP请求固定服务器;一致性哈希减少节点变动对整体影响,提升稳定性。
第十章 常用组件1、nginx相关
正向代理是客户端通过代理访问外部服务器,隐藏客户端身份,用于访问受限资源或保护隐私;反向代理则是服务器前的代理,接收客户端请求并转发至内部服务器,隐藏真实服务器,实现负载均衡、安全防护与缓存加速,提升系统性能与安全性。
10 | 索引拆分:大规模检索系统如何使用分布式技术加速检索?
在大规模检索系统中,分布式技术通过拆分倒排索引提升性能。基于文档的水平拆分将数据随机分片,各服务器并行处理,降低单次查询耗时,且易于扩展与维护;而基于关键词的垂直拆分虽减少请求复制,但易引发负载不均与运维复杂。工业界普遍采用文档拆分,兼顾效率与可维护性。
路由策略:怎么让请求按照设定的规则发到不同的节点上?
本文深入讲解RPC中的路由策略,如何通过IP路由和参数路由实现灰度发布。在服务集群中,借助路由规则筛选请求节点,可精准控制流量,降低上线风险。参数路由基于请求内容打标分流,确保同一业务对象请求始终调用相同版本实例,实现平滑升级与细粒度流量治理。(238字)
服务发现:到底是要 CP 还是 AP?
本文探讨RPC框架中服务发现的CP与AP选择问题。在超大规模集群下,基于ZooKeeper的强一致(CP)方案因性能瓶颈易导致宕机,而最终一致(AP)方案通过消息总线实现数据同步,兼顾性能与稳定性,更适用于高可用、低延迟的服务发现场景。
优雅启动:如何避免流量打到没有启动完成的节点?
本文介绍RPC服务优雅启动的两大核心机制:**启动预热**与**延迟暴露**。通过启动预热,调用方按时间动态提升新节点权重,避免刚启动的“冷”服务因高负载导致请求超时;结合延迟暴露,在应用完全启动并完成资源预加载后才注册到注册中心,确保服务上线即稳定。二者协同实现流量平滑接入,保障系统可靠性。
优雅关闭:如何避免服务停机带来的业务损失?
本课讲解RPC中“优雅关闭”的重要性,避免服务重启导致调用方请求失败。通过添加关闭钩子、设置请求挡板、引用计数器及超时机制,确保正在处理的请求完成,新请求被拒绝并安全重试,实现业务无损上下线。
异常重试:在约定时间内安全可靠地重试
本节讲解RPC框架中的异常重试机制,重点探讨如何在超时控制、节点避让和异常判定的基础上实现安全可靠的重试。需确保业务逻辑幂等,设置重试白名单,并在每次重试前重置超时时间,避免耗时超标,提升系统容错性与稳定性。(239字)
健康检测:这个节点都挂了,为啥还要疯狂发请求?
本文探讨RPC框架中服务健康检测的挑战与优化。通过真实案例揭示:当节点网络异常、心跳间歇失败时,仅依赖心跳机制易导致“半死不活”节点持续接收请求。提出结合业务请求可用率(成功次数/总调用次数)动态评估节点状态,弥补传统心跳机制的不足,实现更精准的健康判断,提升系统稳定性与可用性。