- 博客(487)
- 收藏
- 关注
原创 零拷贝技术:从 DMA 到 Netty 的 FileRegion
DMA(Direct Memory Access)是一种硬件机制,允许外设直接访问内存,无需 CPU 参与每个字节的传输。// CPU 需要逐字节搬运数据i++) {// CPU 等待// CPU 写入// CPU 完全被 I/O 占用,无法做其他事// CPU 只需发起命令// CPU 立即去做其他事// DMA 完成后通过中断通知 CPU零拷贝不是一项技术,而是一系列优化策略:硬件层:DMA 解放 CPU内核层:sendfile 避免用户空间。
2025-11-02 20:20:13
594
原创 Spring 源码之旅:IoC 容器、AOP 实现、事务传播机制
本文深入解析了Spring框架的三大核心机制:IoC容器、AOP实现和事务传播。在IoC容器部分,详细分析了Bean的生命周期、循环依赖处理(三级缓存设计)和@Autowired注入原理;AOP部分探讨了动态代理实现(JDK/CGLIB)、切面织入时机和拦截器链执行流程;事务传播章节则讲解了七种传播行为的区别与适用场景,特别是NESTED嵌套事务的实现机制。文章还提供了源码调试技巧、常见面试题、性能优化建议,并附有手写简易版Spring的实践案例,帮助开发者深入理解Spring的设计思想和底层实现。
2025-10-19 21:29:44
785
原创 MySQL 深度剖析:从存储引擎到事务的完整技术体系
本文深入解析了MySQL InnoDB引擎的核心机制,主要包括:1. InnoDB架构:重点介绍了BufferPool、RedoLog和UndoLog的作用与优化建议;2. B+树索引:对比B树,分析聚簇/非聚簇索引区别及优化原则;3. 事务隔离与MVCC:详细说明RC和RR的实现原理及幻读解决方案;4. 锁机制:讲解行锁、间隙锁及死锁排查方法;5. 实战优化:通过案例演示慢查询优化技巧。文章提供了生产环境配置建议,帮助开发者深入理解MySQL工作原理并提升数据库性能。
2025-10-18 16:27:36
774
原创 高并发系统设计:从 TPS 10 到 10W 的完整优化路径
本文系统性地介绍了电商系统从TPS 15到12万的全链路性能优化路径,分为五个关键阶段:首先通过索引优化、SQL调优和代码重构将性能提升到120;接着通过读写分离和缓存设计提升到1200;然后利用消息队列和分库分表实现削峰填谷,达到8000;最后通过JVM调优、连接池优化和网络配置等极致手段突破到12万。文章强调性能优化需要遵循"测量-解决瓶颈-权衡成本"的原则,指出数据库优化贡献80%收益,并提醒避免过早优化和过度设计。整个优化过程历时一年以上,是持续迭代的系统工程,最终目标是构建高可
2025-10-17 10:26:28
401
原创 事件驱动架构(EDA):Event Sourcing 和 CQRS 的完整实践
摘要:事件驱动架构(EDA)通过存储不可篡改的历史事件而非覆盖状态,解决了传统状态存储无法追溯历史变化的问题。核心优势包括完整的审计日志、时间旅行能力和系统解耦。事件溯源(Event Sourcing)通过重放事件重建状态,配合CQRS实现读写分离,适用于金融、物流等需要完整追溯的场景。实施时需注意事件设计、快照优化和最终一致性处理。技术选型可结合MySQL事件存储与Kafka消息分发,采用渐进式落地策略,从事件总线逐步过渡到完整的事件驱动架构。该架构本质是思维转变:从"当前状态"到&q
2025-10-16 23:04:38
322
原创 领域驱动设计(DDD):驾驭复杂业务的架构哲学
DDD(领域驱动设计)是一种以业务为中心的软件设计方法,核心思想是通过统一语言和划分限界上下文来降低系统复杂度。其关键要素包括:战略设计中的限界上下文划分和上下文映射(如防腐层),战术设计中的实体/值对象区分、聚合根设计和领域事件。DDD强调将业务逻辑封装在领域对象中,避免贫血模型,采用分层架构确保领域层独立性。适用场景为复杂业务系统,但需避免过度设计,其本质是促进技术与业务的深度融合,通过清晰边界和统一语言提升系统可维护性。
2025-10-15 23:36:52
827
原创 服务网格(Service Mesh):微服务架构的新一代基础设施
摘要: ServiceMesh是微服务治理的演进方案,通过Sidecar代理(如Envoy)将服务发现、熔断、限流等逻辑从业务代码中剥离,实现多语言支持、无侵入升级和统一管控。核心架构包括数据平面(Sidecar处理流量)和控制平面(配置下发)。其核心功能涵盖流量管理(金丝雀发布、故障注入)、安全(mTLS、细粒度访问控制)和可观测性(指标、追踪)。性能开销约1-3ms延迟,可通过AmbientMesh或eBPF优化。适合多语言、大规模微服务场景,但需权衡复杂度与收益,非银弹。未来趋势包括无Sidecar架
2025-10-13 21:51:40
591
原创 数据库分库分表的艺术:突破单机瓶颈的数据治理之道
分库分表是应对海量数据的核心策略,当单表数据量突破2000万时,查询性能急剧下降。水平拆分通过数据维度(如用户ID)将大表分散到多个库表,突破单机限制。核心挑战包括:全局ID生成(推荐雪花算法)、跨分片查询(需优化分页和排序)、分布式事务(建议最终一致性)、数据扩容(推荐双写迁移)。中间件首选ShardingSphere,但要注意避免过早拆分、谨慎选择分片键、监控数据倾斜。替代方案可考虑NewSQL数据库。分库分表是权衡艺术,应在优化索引和读写分离无效后再采用。
2025-10-12 19:47:17
469
原创 分布式事务的艺术:从理论到实践的完整攻略
分布式事务没有银弹,每种方案都有其适用场景和代价。作为架构师,我们需要:权衡取舍:一致性 vs 性能 vs 复杂度务实主义:不追求完美的强一致性,最终一致性足够深度防御:幂等性、日志、监控、人工介入,多层保障业务优先:技术服务于业务,而非炫技记住:最好的分布式事务,是不需要分布式事务的设计。在设计系统时,先问自己:这个操作真的需要强一致性吗?能否通过异步化来解决?用户能否接受短暂的不一致?当你不得不使用分布式事务时,选择最简单、最适合的方案,而不是最复杂的方案。
2025-10-11 11:51:01
1144
原创 限流的艺术:构建系统稳定性的第一道防线
想象一下,你开了一家火锅店,生意好到爆棚。如果不限制进店人数,厨房会崩溃、服务员会忙不过来、顾客体验会极差,甚至可能发生安全事故。聪明的做法是:门口排队、限制同时就餐人数、预约制度——这就是现实世界的"限流"。
2025-10-10 17:58:01
547
原创 MySQL事物实现原理
这篇文章介绍了数据库事务的四个特性:原子性、一致性、隔离性和持久性,以及在并发事务中可能出现的脏读、不可重复读和幻读问题。文章还探讨了不同隔离级别下的并发行为,并举例说明了四种隔离级别在实际操作中的差异。
2025-10-09 22:54:18
784
原创 Map相关的高频面试题详细分析讲解_层层深入_由浅入深_面试Map相关的掌握这些足够了
Map相关的高频面试题详细分析讲解_层层深入_由浅入深_面试Map相关的掌握这些足够了
2023-04-16 12:00:41
952
原创 做分布式文件存储,主要是想实现文件存储访问的高性能与高可用,如何保证分布式存储的高性能与高可用?
做分布式文件存储,主要是想实现文件存储访问的高性能与高可用,如何保证分布式存储的高性能与高可用?
2023-04-09 19:00:39
219
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1