尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Java项目实战:从零搭建一个高并发系统
三年前老板扔给我一个需求做一个能扛住十万并发的秒杀系统。我当时只会写CRUD硬着头皮上了。上线第一周系统崩了四次每次都是半夜被叫起来救火。一年后这套系统稳如老狗QPS峰值跑到十二万。回头看高并发不是靠堆机器堆出来的是一层层设计出来的。第一步把单体拆成微服务一开始所有代码都在一个Spring Boot应用里订单、库存、用户、支付搅在一起。压测一跑改库存的锁把整个应用拖死。我按业务域拆成四个服务用户服务、商品服务、订单服务、库存服务。拆分的核心不是越小越好是让每个服务能独立扩容。秒杀时订单和库存压力最大单独加机器就行不用整个系统一起扩。服务间用Dubbo做RPC注册中心用Nacos配置动态刷新改参数不用重启。第二步缓存扛住读MQ扛住写商品详情页每秒被刷几十万次直接查数据库必死。我把商品信息塞进Redis用Hash结构存一个key搞定。热点key用本地缓存Caffeine再挡一层减少Redis网络往返。缓存的核心不是加一层是设计好失效策略。我设置了随机过期时间防雪崩用布隆过滤器挡穿透热点数据永不过期但后台异步刷新。写请求全走MQ。用户下单后消息扔进RocketMQ订单服务慢慢消费。同步写改异步写响应时间从200毫秒降到20毫秒。但异步必须解决幂等我用订单号做去重表重复消费直接丢弃。第三步数据库分库分表加读写分离订单表三个月就破了五千万行。我按用户ID哈希分十六个库每个库再按月份分表。分库分表的核心是选对分片键选错了查询跨片性能更差。用户ID做分片键保证同一个用户的订单落在同一个库。读写分离用ShardingSphere写主库读从库主从延迟用半同步复制压到毫秒级。第四步限流熔断降级三件套秒杀开始瞬间流量是平时的五十倍。我在网关层用Sentinel做限流每秒放一万个请求进来多余的直接返回“排队中”。限流不是拒绝用户是保护系统活着。下游服务配熔断库存服务响应超过500毫秒就熔断快速失败返回兜底数据。降级方案提前写好Redis挂了走本地缓存MQ挂了走同步写但限流阈值砍半。第五步压测调优数据说话每加一个组件我都用JMeter压一遍。线程池参数、连接池大小、JVM堆内存、GC策略全部根据压测数据调。没有压测的优化是自嗨你永远不知道瓶颈在哪。最终调优后单机QPS从800干到8000响应时间P99控制在100毫秒以内。第六步监控告警别等用户投诉Prometheus采集指标Grafana看大盘SkyWalking追链路。CPU、内存、QPS、RT、错误率全部设阈值告警。高并发系统不是不出问题是出问题能秒级发现。有一次Redis集群主节点挂了告警三十秒内推送到手机我还没爬起来自动故障转移已经完成了。这套系统从零到十二万QPS用了一年。没有黑科技全是基本功拆服务、加缓存、上MQ、分库分表、限流熔断、压测调优、监控告警。高并发不是一蹴而就的是一层层叠出来的。你每做好一层系统就多扛一万并发。别想着一步到位先把第一层做好再叠第二层。
RELATED

相关推荐

HarmonyOS 7 EasyGo + ArkUI Navigation:平行视界导航模式的列表选中态、右栏路由栈与全局返回收口【鸿蒙心迹】

HarmonyOS 7 EasyGo + ArkUI Navigation:平行视界导航模式的列表选中态、右栏路由栈与全局返回收口【鸿蒙心迹】

这次不写“平行视界怎么打开”,而是把问题往真实阅读类 App 里再推进一步:左边文章列表固定,右边详情可以继续点相关推荐;当右栏已经压入第二层详情以后,用户执行全局返回,应该只退右栏,不应该把…

📅 2026/10/2 2:35:08
HarmonyOS 7 状态手记 05|页面跳转带好状态

HarmonyOS 7 状态手记 05|页面跳转带好状态

做 HarmonyOS 7 页面时,最容易把人绕进去的往往不是布局,而是“这个值到底该放哪儿”。列表页进入详情再返回 看起来只是几行代码,真接进项目后,经常会遇到 UI 不刷新、返回页面数据变旧、弹窗取消后值却被改掉,或者一…

📅 2026/10/2 2:35:08
离线会议纪要软件哪个好?2026年实测推荐这几款不联网的工具

离线会议纪要软件哪个好?2026年实测推荐这几款不联网的工具

开完会,整理纪要要花一晚上?录音丢进去,3步直接出能交的会议纪要。 很多人找离线会议纪要软件,核心需求就两个: 不联网:会议录音不能上传云端,怕泄露出纪要:不只是转文字&#xff0c…

📅 2026/10/2 2:35:08
MORE NEWS

更多资讯

📰

GMVAE实战:从压缩包到无监督聚类与生成

简介:这份资源是面向深度学习与生成模型学习者的变分自编码器项目源码包,聚焦GMVAE(基于变分自编码器的生成建模)的Python实现,适合具备一定神经网络基础、希望深入理解VAE及其扩展变体的开发者与研究人员参考。压缩包…

📰

Dubbo多机房部署:超时与No provider异常排查及集群扩展实战

前阵子刚把公司核心链路从单机房迁到同城双机房,本以为就是改改注册中心地址、扩一批机器的事,结果上线当晚监控就开始飘红:java.net.SocketTimeoutException: Read timed out和No provider available from registry交替出现。更尴尬的是&…

📰

SpringBoot+Vue+MyBatis+MySQL企业级疫情隔离管理系统完整实践

接手这个项目的时候,我其实挺有感触的。疫情隔离管理这类系统,看着是常规的信息化建设,但真正做起来才发现,SpringBoot Vue MyBatis MySQL这套技术栈在企业级场景下踩的坑,全藏在"人员流转、健康监测、数据上报…

📰

Eclipse WindowBuilder深度指南:Swing可视化开发原理与避坑实战

1. 这不是“装个插件”那么简单:WindowBuilder在Eclipse里的真实定位与价值你搜“eclipse安装可视化swing设计界面”,点开一堆教程,三分钟搞定——点菜单、选插件、点Finish。结果一打开新建GUI项目,拖个按钮出来,双击…

📰

安全标准成为智能家居估值新变量:树莓派与STM32的合规实践

最近在行业群里看到一个很有意思的现象:做智能家居出海的同行,聚在一起聊安全标准的次数,已经快赶上聊销量的次数了,而且每次聊着聊着都会绕到“估值”这个词上。放在两三年前,大家聊估值聊的是月销多少、APP日活多少、…

📰

强化学习稀疏奖励难题:HER目标重标注算法原理与实战解析

1. 先搞清楚:hindsight这个词在强化学习里到底指什么Hindsight 这个英文单词,平时翻译成“事后聪明”,多少带点贬义——事后诸葛亮嘛。但在强化学习领域,它却是一个核心算法、一种让智能体从失败里挖出学习信号的关键机制&#xf…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬