自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 Spring Cloud Gateway 4.0限流算法:令牌桶vs漏桶

令牌桶算法以固定速率生成令牌并存入桶中,请求到达时需消耗令牌。桶满时新令牌被丢弃。突发流量可快速消耗积压令牌,适合允许短期超载的场景。漏桶算法以恒定速率处理请求,超出速率的请求排队或丢弃。能严格限制请求处理速率,适合需要平滑流量的场景。Spring Cloud Gateway需自定义过滤器实现,如通过。数学表达: \lim_{t \to \infty} \frac{tokens}{time} = replenishRate。实现基于Redis的分布式令牌桶限流。

2025-09-07 10:02:12 161

原创 服务网格流量劫持:EnvFilter与Sidecar模式对比

EnvFilter和Sidecar是服务网格中两种不同的流量劫持实现方式,用于拦截和重定向应用的网络流量。EnvFilter基于环境变量和iptables规则,而Sidecar通过代理容器实现流量拦截。

2025-09-07 10:01:39 346

原创 Seata 2.0分布式事务:AT模式与TCC模式选型指南

基于两阶段提交(2PC)的自动补偿机制,通过代理数据源自动生成反向SQL实现事务回滚。适用于大多数业务场景,尤其是对代码侵入性要求低的场景。通过手动编码实现两阶段提交,需业务层实现Try、Confirm、Cancel三个接口。TCC模式提供更强的一致性保证,适用于资金交易等严格场景;高并发场景优先选择TCC模式,避免AT模式的全局锁竞争;AT模式适合简单CRUD操作,TCC模式适合需自定义补偿逻辑(如调用外部API)的场景。AT模式无需额外编码,TCC模式需实现三阶段接口,开发成本较高。

2025-09-07 10:00:44 321

原创 Nginx百万并发配置:epoll模型与worker进程数计算

Nginx实现高并发的核心依赖于epoll模型的高效事件驱动机制和合理的worker进程配置。需结合硬件资源与业务特性进行调优。epoll是Linux内核的高效I/O多路复用机制,Nginx默认采用epoll处理连接。注意:实际配置需通过渐进式压力测试确定最优值,避免单纯依赖理论计算。

2025-09-07 10:00:00 245

原创 过早优化反例:某日活千万应用盲目分库的代价

分库后跨库查询激增,原本单库可完成的关联操作需多次合并结果,网络延迟和计算开销远超预期。将大表按业务模块拆分(如用户表与订单表分离),而非直接水平分库。某金融应用初期按用户 ID 哈希分库,后因业务调整需改为按地域分片,迁移成本超 200 人日。某电商系统因分库后订单与库存库分离,未妥善处理分布式锁,导致超卖事故频发。注:某健康监测App在日活破800万、单表超3TB后才启动分库,此前通过索引优化和冷热数据分离支撑了两年。某新闻应用在读QPS达10万时,采用读写分离而非分库,延迟稳定在80ms内。

2025-09-07 09:59:13 275

原创 Redis缓存穿透终极解决方案:布隆过滤器实现原理

缓存穿透是指查询一个不存在的数据,由于缓存不具备该数据,请求直接穿透到数据库,导致数据库压力过大。缓存穿透是指查询一个不存在的数据,由于缓存不具备该数据,请求直接穿透到数据库,导致数据库压力过大。缓存穿透是指查询一个不存在的数据,由于缓存不具备该数据,请求直接穿透到数据库,导致数据库压力过大。缓存穿透是指查询一个不存在的数据,由于缓存不具备该数据,请求直接穿透到数据库,导致数据库压力过大。布隆过滤器(Bloom Filter)是一种空间效率极高的概率型数据结构,用于判断一个元素是否存在于集合中。

2025-09-07 09:58:31 1003

原创 MySQL索引失效全场景分析:覆盖索引与最左前缀法则

最左前缀法则要求查询必须从索引最左列开始,且不能跳过中间列。覆盖索引指查询的列均包含在索引中,无需回表查询数据行。若SELECT语句包含未在索引中的列,优化器无法使用覆盖索引,需回表查询。通过合理设计索引和查询语句,可显著减少索引失效问题。

2025-09-07 09:57:54 219

原创 JVM调优实战:G1与ZGC垃圾回收器压测对比(JDK21)

【代码】JVM调优实战:G1与ZGC垃圾回收器压测对比(JDK21)

2025-09-07 09:57:14 520

原创 从单体到微服务:电商系统架构演进中的5个致命陷阱

电商系统在初期可能仅需拆解核心功能(如订单、支付、库存),但若将用户评价、推荐算法等非核心模块过早独立,会引发分布式事务、跨服务调用等问题。Netflix的经验表明,初期采用粗粒度服务(如"用户服务"包含基础信息、偏好设置)更利于维护。沿用单体时代的"功能团队"会导致开发效率下降。亚马逊的"Two Pizza Team"原则(每个微服务由6-8人小团队全权负责)值得借鉴,但需配套建立清晰的API契约和Mock测试机制。当订单支付超时,需要追踪经过网关、订单服务、支付服务、风控服务的完整链路。

2025-09-07 09:55:45 314

原创 Chrome插件开发快速入门指南

介绍Chrome插件的基本概念、核心功能和应用场景,说明其基于Web技术(HTML/CSS/JavaScript)的开发特点。

2025-09-07 09:54:43 236

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除