
架构师
文章平均质量分 90
颯沓如流星
Putty本无树,MinGW亦非台
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ThreadLocal与线程池的生死博弈:内存泄漏防御全指南
ThreadLocal 是 Java 中解决多线程数据隔离问题的核心工具,其核心价值在于为每个线程创建 独立的变量副本,实现线程封闭(Thread Confinement)。原创 2025-07-11 11:57:26 · 386 阅读 · 0 评论 -
32核64G内存的物理机上,Netty理论能承载多少连接?
在32核64G内存的机器上,Netty的承载连接数受业务场景、配置优化和操作系统调优的影响。理论估算显示,64G内存可支持64K~6M空闲连接,32核CPU可处理10W~50W活跃连接。实际场景中,纯心跳保活可支持1M~2M连接,简单Echo服务为500K~1M,游戏网关为100K~300K,高频交易系统为50K~100K。关键优化措施包括操作系统调优(如文件描述符限制和TCP参数调整)、Netty配置优化(如使用Epoll边缘触发和内存池)以及JVM调优(如使用G1垃圾回收器)。通过压力测试和监控关键指标原创 2025-05-21 16:00:00 · 801 阅读 · 0 评论 -
深入解析Java四大引用类型:从强引用到虚引用的内存管理艺术
使用软引用缓存玩家常用数据使用弱引用管理事件监听器避免在核心服务中使用弱/软引用内存敏感场景。原创 2025-05-19 18:00:00 · 918 阅读 · 0 评论 -
软件设计中的整洁架构:让代码像乐高一样优雅
整洁架构✅业务逻辑独立:不依赖数据库、框架、UI 等具体技术。✅易于扩展和维护:改需求或换技术时,只需改少量代码。✅高度可测试:业务逻辑能单独测试,不依赖外部服务。它的设计灵感来源于 “洋葱模型”,代码像洋葱一样分层,外层依赖内层,但内层绝不依赖外层!业务逻辑与技术细节分离(像乐高一样模块化)。内层不依赖外层(避免被框架绑架)。通过接口解耦(轻松替换实现)。如果你受够了“改一行代码炸整个系统”的痛苦,不妨试试整洁架构!原创 2025-04-21 19:00:00 · 1071 阅读 · 0 评论 -
领域驱动设计:从餐厅到代码,轻松理解 DDD
领域驱动设计(DDD)是由 Eric Evans 提出的一种软件设计方法,旨在通过深入理解业务领域来构建复杂的软件系统。DDD 的核心思想是将系统的设计和实现与业务领域紧密结合,通过领域模型来指导开发过程。// 用户实体// 商品实体// 订单实体领域驱动设计(DDD)是一种通过深入理解业务领域来构建复杂系统的方法论。它通过领域模型、限界上下文、聚合等概念,帮助开发者更好地组织和管理系统。DDD 强调业务逻辑与领域模型的紧密结合,从而提高系统的可维护性和可扩展性。原创 2025-04-18 12:00:00 · 988 阅读 · 0 评论 -
MySQL InnoDB设计图鉴——核心组件讲解
MySQL InnoDB架构解析:Buffer Pool、Change Buffer、自适应哈希索引与Log Buffer原创 2025-04-10 10:11:40 · 762 阅读 · 0 评论 -
【架构师之路】分布式事务通关秘籍:原理、挑战与主流解决方案
分布式事务指事务的参与者、资源服务器及事务管理器分布在不同的网络节点上。网络不可靠:节点间通信可能延迟、丢失或重复。数据一致性:跨多个数据库或服务的数据需保持同步。性能与可用性:需在一致性和系统可用性之间权衡(CAP理论)。分布式事务是微服务架构的核心挑战之一,需结合 CAP/BASE 理论选择合适方案。工业级框架(如 Seata)降低了实现复杂度,但开发者仍需根据业务特点权衡一致性、可用性与性能。原创 2025-03-26 15:00:00 · 1611 阅读 · 0 评论 -
【架构师之路】从15% CPU到3%:我们如何通过替换日志框架拯救了服务器集群?
Log4j2:适用于复杂的日志需求,对性能要求较高的场景,以及需要灵活配置和扩展的项目。Logback:适用于简单的日志记录需求,对性能要求不是特别高的场景,以及希望快速上手的项目。综合建议:新项目优先选择 Log4j2,存量系统根据改造成本评估迁移价值。原创 2025-03-20 18:00:00 · 901 阅读 · 0 评论 -
【架构师之路】线程池参数优化实战——如何根据QPS设计合理线程数?
基准测试先行:通过JMeter/Gatling获取任务执行时间分布监控驱动优化:实时观察aqueue_size等指标弹性伸缩设计:结合K8s水平扩容与线程池垂直调整。原创 2025-03-18 13:33:02 · 1012 阅读 · 0 评论 -
【架构师之路】每秒崩溃100次到百万并发:四大限流算法如何拯救你的系统?
随着互联网和移动应用的蓬勃发展,系统的稳定性和可靠性变得至关重要。在面对突发流量和恶意攻击等挑战时,限流器算法的重要性愈发凸显。限流器算法作为保护系统免受过载的有效手段,扮演着关键的角色。它们能够有效地控制请求的处理速率,防止系统被过多请求淹没,从而保障系统的正常运行并提升用户体验。在这篇文章中,我们将探讨不同类型的限流器算法,包括漏桶算法、令牌桶算法、固定窗口算法和滑动窗口算法,深入剖析它们的原理、特点以及在实际场景中的应用。原创 2025-03-17 14:34:25 · 835 阅读 · 0 评论 -
【架构师之路】从一个对象真实占用大小引发的Java内存对齐(Memory Alignment)的思考
内存对齐(Memory Alignment)是 JVM 在分配对象内存时,通过填充字节(Padding)使数据按特定字节边界对齐的技术。提高内存访问效率:CPU 通常以固定大小(如 8 字节)读取内存块,对齐后减少跨边界访问的指令次数优化硬件兼容性:某些硬件平台无法访问未对齐的内存地址,对齐避免抛出硬件异常减少伪共享(False Sharing):对齐填充可防止多个线程访问同一缓存行的不同数据,降低并发竞争。原创 2025-03-12 17:30:00 · 970 阅读 · 0 评论 -
【架构师之路】从Java中不同Hash表,探索Hash冲突的解决方法。
Hash冲突是哈希技术中不可避免的现象,但通过合理选择冲突解决策略(如链地址法兼顾灵活性与性能,开放定址法优化内存)、设计高效哈希函数,以及动态调整负载因子,可显著降低其影响。实际应用中需根据数据规模、访问模式和硬件条件综合权衡。原创 2025-03-14 05:00:00 · 737 阅读 · 0 评论 -
【架构师之路】分布式系统中,容错治理的三大利器熔断、限流、降级
服务降级是指在系统部分功能出现异常或负载过高时,主动降低某些非核心功能的质量或直接停止这些功能,以保证核心功能的正常运行。其核心思想是“优先保障核心服务服务熔断是一种保护机制,用于防止系统在某些服务出现问题时,影响到整个系统的稳定性。其灵感来源于电力系统中的熔断器,当电路出现过载时,熔断器会自动切断电路以保护整个系统。服务限流是指通过限制系统处理请求的速率,来保护系统资源,防止系统过载。限流策略通常用于防止突发流量对系统的冲击。原创 2024-12-11 11:27:55 · 1282 阅读 · 0 评论 -
【架构师之路】理解 CAP 理论:分布式系统中的权衡与选择 | 常用组件中的CP和AP
Redis Cluster 没有选择强一致性,而是采用了最终一致性。这是因为在保证高可用性和分区容错性的同时,强一致性会带来性能上的巨大损耗。例如,在主从复制过程中,如果要求每次写操作都必须等待从节点同步完成才能返回成功,会大大增加写操作的延迟。Redis Cluster 通过异步复制的方式来维护数据的一致性。主节点接收写请求后,会异步地将数据复制给从节点。在正常情况下,这种异步复制能够快速地将数据传播到从节点。原创 2024-12-10 13:50:31 · 1073 阅读 · 0 评论 -
【架构师之路】锁战争终结者:Actor与CSP如何颠覆传统并发编程?
每种并发模型都有其特定的优缺点和适用场景,选择合适的模型可以帮助开发者更有效地构建高并发、可靠的应用程序。根据具体的应用需求和上下文,开发者可以选择最匹配的并发计算模型。原创 2024-12-12 12:00:00 · 1971 阅读 · 0 评论 -
【架构师之路】微服务架构设计中的边车(Sidecar)模式
Sidecar模式是一种架构设计模式,通常用于微服务架构中。它通过将辅助功能与主应用程序分离,使得主服务可以专注于其核心业务逻辑。Sidecar模式指的是在微服务架构中,将一些常见的功能(如日志记录、监控、服务发现等)封装在一个独立的服务或代理中(例如 Kubernetes 中的 Pod),这个服务与主服务并行运行,形成“侧车”结构。如下图所示,sidecar 模式允许您在应用程序旁边添加更多功能,而无需额外第三方组件配置或修改应用程序代码。原创 2025-02-17 10:56:39 · 996 阅读 · 0 评论 -
【架构师之路】软件架构设计方法之The Clean Architecture 整洁架构
Clean Architecture 是一种旨在提高软件质量的设计理念,通过严格的层次划分和依赖管理,使得系统更加灵活、可维护和可测试。理解和应用清洁架构的原则,可以帮助开发者在构建复杂系统时做出更合理的设计决策。原创 2024-12-17 18:00:00 · 1677 阅读 · 0 评论 -
【架构师之路】哈希函数优化终极方案,完美哈希函数的探索与思考
哈希表是⼀种查找性能⾮常优异的数据结构,它在计算机系统中存在着⼴泛的应⽤。尽管哈希表理论上的查找时间复杂度是 O(1),但不同的哈希表在实现上仍然存在巨⼤的性能差异。下面是jdk里的一些hash表的测试情况我们发现,hash频繁碰撞也有可能将查询时间复杂度从O(1)退化为O(n),空间复杂度也会伴随上升。这是因为,一般哈希表对哈希冲突的处理会增加额外的分⽀跳转和内存访问,这会让流⽔线式的CPU指令处理效率变差。当遇到哈希冲突时,我们常见到的解决⽅案有:开放寻址法、拉链法、⼆次哈希法。原创 2025-03-11 14:21:01 · 875 阅读 · 0 评论 -
【架构师之路】深入了解架构中常见的4种缓存模式及其实现
Cache-Aside(旁路缓存)模式,又叫(懒加载)模式,在这种模式下,缓存的读取和写入由应用程序直接管理。应用程序首先尝试从缓存中读取数据,若缓存未命中,则从数据库中加载数据并将其存储在缓存中;对于更新操作,应用程序直接更新数据库,并更新或删除缓存中的相关数据。Read-Through 模式下,缓存层自动管理数据的读取。当应用程序请求数据时,缓存层会先检查缓存,如果缓存命中则直接返回数据;如果缓存未命中,则缓存层自动从数据库加载数据,并将数据存入缓存。Cache-Aside模式中,原创 2024-12-09 20:11:15 · 3153 阅读 · 0 评论