算法

首页 标签 算法
# 算法 #
关注
124489内容
09 | 健康检测:这个节点都挂了,为啥还要疯狂发请求?
本文深入探讨RPC框架中的服务健康检测机制,针对超大规模集群下节点状态感知难题,提出“推拉结合,以拉为准”的核心思路。通过分析真实线上故障,揭示传统心跳机制在判断“半死不活”节点时的局限性,并引入基于业务请求可用率的动态评估方案,提升服务可用性。文章还对比汽车中控反馈系统,类比设计多维度健康检测模型,涵盖连接状态、心跳响应与业务成功率,最终实现更精准的节点筛选与容错控制,保障分布式系统的稳定运行。
15 | 熔断限流:业务如何实现自我保护?
本文讲解RPC框架中业务的自我保护机制。服务端通过限流(如令牌桶、滑动窗口)防止过载,可基于应用或IP维度控制,并借助配置中心动态调整阈值;还可依赖集中式限流服务实现集群级精确控制。调用端则通过熔断机制避免因下游异常导致雪崩,熔断器在动态代理层拦截请求,实现快速失败。二者结合提升系统稳定性。
07 | 架构设计:设计一个灵活的 RPC 框架
本文深入讲解如何设计一个灵活的 RPC 框架,从基础通信原理出发,剖析传输、协议、服务发现、连接管理等核心模块,并提出分层架构与插件化设计思想,提升系统可扩展性与维护性,助力构建高性能、易演进的分布式服务架构。
CP(强制一致性),AP(最终一致)
本文探讨RPC框架中的服务发现机制,对比DNS、ZooKeeper等方案,指出其在超大规模集群下的局限性。重点提出基于消息总线的最终一致性注册中心,通过AP模型替代CP,提升系统性能与稳定性,适用于高并发、大规模服务节点场景。
|
4天前
|
Ribbon负载均衡
本节深入讲解@LoadBalanced注解的作用,剖析Ribbon客户端负载均衡原理,涵盖负载均衡分类、算法及自定义策略配置,解析首次请求延迟的饥饿加载机制,并对比服务端实现方案,帮助读者全面理解微服务负载均衡设计。
|
4天前
|
负载均衡算法
本文介绍多种负载均衡算法:随机、加权随机、轮询、加权轮询、最小活跃数、源地址哈希及一致性哈希,适用于不同场景,如性能均等或差异大的服务器集群,强调请求分发的公平性、稳定性和动态适应能力。
Thread.sleep(0) 到底有什么用(读完就懂)
Thread.Sleep用于让线程暂停执行一段时间,不参与CPU竞争。Sleep(1000)不代表1秒后立即恢复,取决于系统调度;而Sleep(0)会触发操作系统立即重新进行CPU分配,给予其他线程执行机会,避免界面假死。
零拷贝
实现高效文件传输需减少上下文切换与内存拷贝。传统方式频繁系统调用导致性能低下,零拷贝技术通过合并读写操作、利用PageCache和SG-DMA,将切换与拷贝降至最低。大文件场景则宜用异步IO+直接IO避免缓存污染,提升并发性能。
|
4天前
|
数据库检索:如何使用 B+ 树对海量磁盘数据建立索引?
本节深入探讨磁盘环境下大规模数据检索的挑战与解决方案,重点解析B+树如何通过索引与数据分离、多阶平衡结构及双向链表连接叶子节点等设计,显著减少磁盘I/O次数,实现高效查找、插入、删除和范围查询,广泛应用于数据库系统。
线程池
本文深入剖析Java线程池实现原理,涵盖ThreadPoolExecutor与ScheduledThreadPoolExecutor的底层机制,解析线程复用、任务队列、拒绝策略及周期性调度的实现细节,并对比常用线程池类型,帮助开发者理解高并发编程中的核心组件。
免费试用