优雅停机之Spring Cloud Gateway技术分享本文探讨Spring Cloud Gateway优雅停机问题,分析upstream服务停机时因注册中心下线延迟和本地缓存导致的调用异常,提出通过监听ContextClosedEvent事件优先下线服务,并处理服务列表缓存更新的解决方案,同时指出该方案在注册中心推送延迟时的局限性。2024-2-19 spring-cloud-gateway 优雅停机
Docker端口映射的实现机制技术分享本文深入探讨了Docker端口映射的实现机制,通过分析宿主机和容器内的网络连接情况,揭示了docker-proxy和iptables DNAT两种转发方式的工作原理,并验证了不同场景下的网络通信路径,最后总结了端口映射对性能的影响。2024-2-18 docker iptables
优雅停机之Dubbo技术分享本文深入分析Dubbo 2.6.5版本的优雅停机实现,探讨其停机流程中的问题及解决方案。通过源码和日志分析,揭示DubboShutdownHook与SpringShutdownHook并行执行的风险,并梳理了Dubbo在后续版本中对优雅停机的持续优化过程,包括多个关键PR和issue的修复历程。2024-1-22 dubbo 优雅停机
优雅停机(上)技术分享文章介绍了优雅停机的概念及实现方式,重点分析SpringBoot内嵌WebServer的优雅停机机制,包括ShutdownHook原理、Spring容器停机流程、SmartLifecycle实现,以及2.3版本前后的优雅停机方案对比。2024-1-9 优雅停机
Sentinel之计数统计及限流逻辑技术分享本文深入分析Sentinel的计数统计及限流核心逻辑,包括滑动窗口实现、统计节点维护、限流策略分类等关键机制,并探讨了时间回拨处理等细节问题。2024-1-4 sentinel 限流
Sentinel之限流算法技术分享本文深入解析Sentinel限流框架的四种限流算法实现:DefaultController直接拒绝、RateLimiterController匀速器、WarmUpController预热及WarmUpLimiterController,重点剖析了预热算法的设计原理与实现细节,并指出其与Guava SmoothWarmingUp的区别,最后提出对WarmUpController设计原理的疑问。2024-1-3 限流
限流算法及常见实现技术分享本文总结了常见限流算法(固定窗口、滑动日志、滑动窗口、漏桶、令牌桶)及其实现方案,分析了QPS和并发数两种限流维度,详细比较了各算法的优缺点,并提供了Redis、Sentinel等典型实现方式,最后探讨了限流处理策略和长窗口风险防范。2023-12-27 限流
Guava RateLimiter技术分享深入解析Guava RateLimiter源码实现,包括令牌桶算法原理、两种限流策略(平滑爆发SmoothBursty和预热SmoothWarmingUp)的核心设计思想,以及如何处理闲置和大流量场景。通过代码示例展示其工作流程和实际应用中需要注意的问题。2023-12-22 guava 限流
如何解析离线binlog文件技术分享本文探讨了离线binlog文件解析的多种方法,对比了阿里云DMS、mysqlbinlog、binlog2sql等工具的优缺点,重点介绍了自研工具canal2sql的设计目标与核心改造点,支持离线解析、列还原、回滚SQL生成等功能,为开发人员提供了全面的数据变更追踪解决方案。2023-12-14
定制spring-cloud-gateway限流器来解决线上问题问题排查生产环境高峰期出现用户请求"死循环"问题,通过分析日志制定限流策略,基于Spring Cloud Gateway的RequestRateLimiter实现同用户、同接口、同入参的限流,并优化了RedisRateLimiter脚本,解决了时间回拨等问题,同时支持开关控制和异常处理。2023-11-30 spring-cloud-gateway 限流
spring-cloud-gateway内存泄漏?问题排查Spring Cloud Gateway处理大文件上传时出现内存溢出问题,排查发现是RetryGatewayFilter导致AdaptCachedBodyGlobalFilter缓存整个请求体。解决方案包括使用unpooled内存分配、增加请求大小限制Filter,并避免在网关直接处理文件上传。2023-11-14 spring-cloud-gateway