
java技术架构师成长专栏
文章平均质量分 93
对java技术架构师成长路线做详细规划,并结合实际场景一步一步学习。
power-辰南
一枚热爱技术的老头子,承接各类软件系统,及技术咨询,欢迎咨询!
展开
-
亿级分布式系统架构演进实战(十二)- 单元化架构(单元划分与架构设计)
(百万级用户):部署10-15个服务实例(8C16G规格),独立数据库分片(MySQL 8C32G):构建可独立运行的自治单元,单元内闭环处理所有业务,避免跨单元强依赖。:单元内微服务自包含,跨单元调用需通过GZone代理(禁止直连)。:根据用户IP解析至最近单元(如华北用户→北京单元)。:统一处理跨单元协同服务,保障全局一致性与高可用。:单元间数据同步冲突(如用户同时修改手机号):智能路由流量,支持单元级容灾与灰度发布。:支持Header显式指定单元(:单元内数据库分片存储,仅通过。原创 2025-04-10 13:58:16 · 757 阅读 · 0 评论 -
亿级分布式系统架构演进实战(十一)- 垂直拆分(服务治理体系、安全架构升级)
SkyWalking作为Apache顶级项目,广泛用于微服务监控(如阿里、腾讯生产环境)。:可选H2(测试)、Elasticsearch(生产),本文选择ES集群。:支持多维度路由(IP、用户ID、Header),灵活适配业务场景。:提供可视化Dashboard,展示拓扑图、链路详情、性能指标。:支持自动拓扑发现、服务性能指标、慢服务检测、链路追踪等。:设置索引生命周期管理(ILM),保留最近30天数据。:敏感数据(如手机号、身份证号)在传输和存储前脱敏。原创 2025-03-26 09:35:45 · 1026 阅读 · 0 评论 -
亿级分布式系统架构演进实战(十)- 垂直拆分(分布式事务管理设计)
通过Try-Confirm-Cancel三阶段,支持自定义补偿逻辑。:实现简单,适合对一致性要求不高的场景(如日志记录)。:高吞吐量(TPS > 10k),适合订单创建场景。:通过全局锁机制自动回滚事务,减少业务侵入。:同步阻塞,性能较低(TPS < 500)。:通过事件驱动逐步执行事务,失败时逆向补偿。:依次执行子事务(如创建订单 → 扣库存)。:记录事务前后的数据镜像,用于自动回滚。:逆向回滚(如取消订单 → 返还库存)。:对异常事务执行修复(如重试或回滚)。:解耦业务与消息发送,适合微服务架构。原创 2025-03-26 09:33:03 · 1160 阅读 · 0 评论 -
亿级分布式系统架构演进实战(九)- 垂直拆分(服务间通信设计)
使用Tag-Length-Value(TLV)格式压缩数据,体积比JSON小3-5倍。:通过OpenFeign声明式接口封装HTTP调用,减少重复代码。:基于动态代理生成HTTP客户端,将接口方法映射为HTTP请求。:滑动窗口统计异常比例(默认5秒窗口),触发后直接拒绝请求。:支持负载均衡(Ribbon)、超时配置、日志跟踪。:单连接支持并行请求,避免HTTP/1.1队头阻塞。:通过探针(Agent)收集服务调用链,生成拓扑图。:记录状态变更历史,支持数据修复与业务分析。原创 2025-03-25 18:16:08 · 1321 阅读 · 0 评论 -
亿级分布式系统架构演进实战(八)- 垂直拆分(领域划分及垂直分库设计)
将系统拆分为多个高内聚的业务单元,每个单元内数据模型自洽。:单个领域内可完成核心业务流程(如订单创建到发货):领域内数据自包含,跨领域交互仅通过事件/API。:定义跨上下文交互模式(如防腐层、共享内核)。:跨网络查询延迟较高,适合低频运营分析。:简化复杂查询,避免数据冗余。,禁止跨库直接访问。原创 2025-03-25 18:11:44 · 1024 阅读 · 0 评论 -
亿级分布式系统架构演进实战(七)- 横向扩展(安全防护设计)
本文围绕亿级分布式系统架构中保障系统安全、抵御攻击的核心目标,构建了多层级安全防护体系。设计了 DDoS 防护(云厂商高防 IP、WAF 规则)、流量控制(Sentinel 熔断、动态限流)、HTTPS/TLS 加密传输、数据安全(脱敏、加密存储)、服务间鉴权(JWT)及权限控制(RBAC)等方案。针对横向扩展后常见问题,提出了数据一致性(半同步复制、强制读主库)、负载均衡(一致性哈希)、缓存一致性(版本号控制)、分布式事务(Saga 模式)等解决方案。通过部署 Nginx WAF、Prometheus 监原创 2025-03-12 08:30:00 · 1847 阅读 · 0 评论 -
亿级分布式系统架构演进实战(六)- 横向扩展(监控与日志体系)
本文聚焦亿级分布式系统架构中实现全链路可观测性、快速定位性能瓶颈的核心目标,构建了多层级监控体系。设计了应用层(JVM、线程池、HTTP 接口)、数据库层(连接数、慢查询)、缓存层(命中率、内存使用)的指标监控方案,通过 Prometheus 与 Micrometer 实现数据采集与告警规则配置。搭建 ELK/EFK 集中式日志系统,实现日志分级存储、脱敏处理及生命周期管理。设计阈值告警与根因分析机制,结合自动化脚本实现故障自愈。通过 Prometheus 集群、ELK 集群部署及应用接入配置,显著提升了系原创 2025-03-12 08:15:00 · 673 阅读 · 0 评论 -
亿级分布式系统架构演进实战(五)- 横向扩展(缓存策略设计)
本文围绕亿级分布式系统架构中降低数据库读压力、提升响应速度的核心目标,详细阐述了多级缓存架构及相关策略。介绍了包括客户端缓存、本地缓存(Caffeine)、分布式缓存和数据库缓存的多级缓存架构,分析了不同层级缓存的数据类型、读写方案、一致性方案及监控配置等。同时,对多级缓存的淘汰策略、更新策略和一致性保障方案进行设计,对比了不同方案的优劣及适用场景。针对热点数据问题,提出了热点发现机制和三级防护体系。此外,还给出了缓存雪崩、穿透、击穿等常见问题的解决思路和实现细节。实践表明,多级缓存能显著减少磁盘 I/O原创 2025-03-11 09:48:24 · 940 阅读 · 0 评论 -
亿级分布式系统架构演进实战(四)- 横向扩展(负载均衡与弹性伸缩)
对于弹性伸缩方案选择方向有两个,一个是根据运行指标自动伸缩,一个是根据运行指标预警运维人员手动进行资源伸缩。通过以上改造,营销中台系统能够及时感知服务是否健康,资源是否吃紧,以便快速响应及处理。并通过对流量限流、服务降级/熔断等处理,很好的提升系统整体稳定性。2、利用Prometheus指标预警,及时对应用服务资源、数据库服务资源、消息服务资源、带宽资源等资源及时进行伸缩处理。3、利用sentinel对系统流量进行限流及对服务实现降级、熔断处理。• 选择纵向扩容(提升配置)或横向扩容(增加实例)原创 2025-03-11 08:15:00 · 1027 阅读 · 0 评论 -
亿级分布式系统架构演进实战(三)- 横向扩展(数据库读写分离)
虽然数据库采用了半同步机制,但是从库还是有几率因为延迟使得请求读取了旧数据,对于对数据实时性很高的场景,可以强制走主库。(例如 IO 等待占 50% → 2 + 0.5/0.5 = 3 → 最大线程数 = 8×3=24)(例如 CPU 占 60%,IO 占 40% → 1 + 0.4 = 1.4 倍)1、mysql实现主从架构,采用ShardingSphere路由实现读写分离。数据库由原理的单实例变成主从模式,主主要负责写,从负责读。• 服务器:8 核 CPU,IO 平均等待时间占比 70%原创 2025-03-11 08:15:00 · 1637 阅读 · 0 评论 -
亿级分布式系统架构演进实战(二)- 横向扩展(服务无状态化)
以上应用服务可以实现无状态话,当应用服务达到性能瓶颈的时候,可通过横向增加节点,然后利用nginx的负载均衡调度,实现性能增加。这项改造其实跟服务无状态话这个目标是没有什么关联性的,本地内存的作用是提升性能,这里是顺便优化了,你们可以根据情况自行选择。使用分布式会话存储,避免横向扩展后多节点会话信息不能共享问题,如用户登录会话。:传统单体应用中,用户会话存储在服务实例内存,无法支持多实例负载均衡。• 阶段1:新会话写入Redis,同时保留本地Session(双写)原创 2025-03-10 08:00:00 · 5993 阅读 · 0 评论 -
亿级分布式系统架构演进实战(一)- 总体概要
构建一个兼具高性能、高可用、强一致性的分布式系统,支撑亿级流量场景下的稳定运行。原创 2025-03-10 08:00:00 · 630 阅读 · 0 评论 -
技术组件之幂等性组件
生产级幂等性组件设计思路及实现,通过sdk方式无缝引入到服务中,支持多场景灵活的幂等性拦截机制,满足各个业务场景的接口级别幂等性拦截。原创 2024-11-24 18:01:23 · 1022 阅读 · 0 评论 -
技术组件之短链接组件(一)
复现亿级短链接系统设计思路及实现过程原创 2024-11-25 17:45:21 · 796 阅读 · 0 评论 -
高并发系统架构设计全链路指南
ShardingSphere 读写分离 + 分库分表。:数据库单点压力大,单表行数过多影响查询效率。:RocketMQ 异步下单 + 线程池优化。:服务无状态化 + 负载均衡 + gRPC。:屏蔽分库分表复杂性,提高开发效率。:避免业务阻塞,提升并发处理能力。:减少单库压力,提高并发处理能力。:降低服务间延迟,提高 QPS。:优化请求调度,提高吞吐能力。:解耦服务,提高系统扩展能力。,优化架构,提高吞吐量。原创 2025-02-19 13:51:54 · 1198 阅读 · 0 评论 -
微服务生产环境常见问题及解决方案
对有状态服务(如 Redis、TiDB),使用 StatefulSet 持久化存储,确保数据不丢失。:采用 Multi-Level Caching 方案,热点数据缓存到多个层级,避免单点压力。:对于强一致性要求的核心业务(如支付、订单),使用 MySQL,其他流量继续走 TiDB。:MySQL + TiDB 读写分离,热点数据存入 TiDB,保障高可用性。:如订单查询请求,可直接从 Redis 读取,而非每次都调用订单服务。:在活动开始前,提前加载热点商品数据到 Redis,避免冷启动问题。原创 2025-02-19 08:30:00 · 813 阅读 · 0 评论 -
微服务线上发布稳定性解决方案
以下是根据你的反馈细化后的解决方案,重点加强了灰度发布、蓝绿发布中的数据库兼容性设计,发布后如何快速发现业务逻辑异常以及应急预案和最佳实践部分的详细描述。蓝绿发布是将系统分成两个环境,蓝色环境是当前的稳定版本,绿色环境是新版本。发布时,将流量切换到绿色环境,若无异常,再移除蓝色环境。灰度发布是指在新版上线时,只将部分流量引导到新版本,确保新版本没有问题后再逐步增加流量。在蓝绿发布过程中,确保新版本的应用能够兼容旧表,并通过代码逐步迁移到新表。来模拟实际流量,触发 JIT 编译,提升上线时的性能。原创 2025-02-18 17:22:24 · 1203 阅读 · 0 评论 -
微服务实现流量回放进行真实模拟压测实战
通过合理设计存储格式和严格映射测试环境,流量回放可精准复现生产场景,成为微服务发布前的重要验证屏障。原创 2025-02-18 15:36:25 · 7211 阅读 · 0 评论 -
基于 Spring Cloud + Sentinel 的全面流量治理方案
基于 Spring Cloud + Sentinel 的全面流量治理方案。原创 2025-02-18 08:30:00 · 4384 阅读 · 0 评论 -
架构师成长(七)之深入理解JVM虚拟机垃圾回收
本文深入解析 JVM 垃圾回收原理。先介绍对象存活判定的引用计数法与可达性分析法,再阐述标记 - 清除等多种垃圾回收算法及其优缺点、指标对比。还讲解分代、增量、分区算法,剖析 Stop the World 事件、并行与并发,以及对象 Finalization 机制、安全点与安全区域,助于优化 Java 应用性能。原创 2025-02-10 08:30:00 · 970 阅读 · 0 评论 -
架构师成长(六)之深入理解JVM虚拟机方法区
本文深入解析 JVM 虚拟机方法区,涵盖多方面关键内容。首先阐述方法区基本概念,包括其定义、与其他内存区域逻辑关系及内存特征。接着详述在 JDK 不同版本中的演进,如 1.7 及之前的永久代及其局限,1.8 引入元空间的机制与优势,1.7 将字符串常量池移至堆的缘由与影响,以及 JDK 17 对元空间的持续优化。随后探讨栈、堆、方法区交互关系,涉及方法调用、对象创建、符号引用解析等方面。原创 2025-02-09 09:00:00 · 953 阅读 · 0 评论 -
架构师成长(四)之深入理解 JVM 虚拟机栈
Java 虚拟机栈(Java Virtual Machine Stack)是 Java 虚拟机运行时数据区的重要组成部分之一,它与线程紧密相关。每个 Java 线程在创建时都会分配一个独立的虚拟机栈,其生命周期与线程相同。虚拟机栈的主要作用是为 Java 方法的执行提供内存支持。它存储了方法执行过程中的局部变量、操作数、方法出口等信息。在 Java 程序运行时,方法的调用和返回对应着栈帧在虚拟机栈中的入栈和出栈操作。原创 2025-02-06 11:12:57 · 3201 阅读 · 0 评论 -
架构师成长(三)之深入剖析类加载过程原理
类从被加载到 JVM 中开始,到卸载出内存为止,其生命周期包括加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading)七个阶段。其中,加载、验证、准备、解析和初始化属于类加载过程。在 JDK 1.8 及以后的版本中,类加载的各个阶段在 JVM 的不同区域协同完成。加载阶段从外部获取字节流并在元空间和堆中构建类的运行时数据结构;原创 2025-02-05 14:05:24 · 684 阅读 · 0 评论 -
架构师成长(二)之JVM原理解析
由 Sun 公司开发,后随 Sun 被 Oracle 收购,成为 Oracle JDK 等主流 Java 开发工具包中的默认虚拟机,在 Java 程序运行中充当关键角色,负责执行 Java 字节码,实现 Java“一次编写,到处运行” 的跨平台特性。原创 2025-02-05 10:38:47 · 3390 阅读 · 0 评论 -
架构师成长(一)之计算机系统知识
计算机系统从高到低分为多个层次。应用语言机器级面向用户,用户通过特定应用语言与计算机交互。高级语言机器级是程序员使用高级编程语言(如 C、Java 等)编写程序的层次,这些语言更接近人类自然语言,便于编程。汇编语言机器级则使用助记符来表示机器指令,与硬件联系更紧密。操作系统机器级管理计算机的软硬件资源,为上层提供服务。传统机器级直接执行机器指令,是硬件实现的基础。微程序机器级则是用微程序实现机器指令的功能,处于硬件底层。原创 2025-02-04 11:02:35 · 730 阅读 · 0 评论 -
技术架构师成长路线(2025版)
操作系统内核参数、优化文件系统和磁盘 I/O 调度算法、合理配置网络参数等。了解不同操作系统(如 Linux、Windows 等)在性能优化方面的特点和差异,掌握如何根据系统的应用场景和负载情况进行操作系统的优化。学习使用操作系统自带的性能监控工具(如 top、vmstat、iostat 等)对系统资源进行实时监控和分析。学习长路漫漫,大家共勉!原创 2025-02-03 20:23:24 · 5018 阅读 · 2 评论