首页 文章 精选 留言 我的

文章列表

共 217332 篇
《Spring Mongo实战》第7招 MongoTemplate才是主角

《Spring Mongo实战》第7招 MongoTemplate才是主角

凌晨两点,手机突然弹出一堆告警:商品列表查询又超时了。我是老李,一个负责电商后端的老兵,系统用 Spring Boot 加 MongoDB 跑了三年多。业务不算特别新,但需求一直在变:商品列表要支持价格区间、类目、标签、关键词、上下架状态、库存状态、促销标签,甚至还要根据用户身份裁剪字段。前端每加一个筛选条件,代码里的查询方法就膨胀一圈。

《Spring Mongo实战》第8招 更新别总save

《Spring Mongo实战》第8招 更新别总save

凌晨三点,运营群炸了:某爆款商品库存明明还有 50 件,后台却显示负数,超卖了几十单。我是老李,被拉起来救火。第一反应:是不是代码在并发下把库存扣成了负数?翻出核心逻辑,发现是典型的 find → Java 修改 → save:先按 id 查出商品文档,拿到 stock,减去 1,再保存回去。这个流程在压测下必然出问题。

《Spring Mongo实战》第9招 乐观锁怎么做

《Spring Mongo实战》第9招 乐观锁怎么做

你有没有遇到过这样的情况:两个请求同时修改同一个商品价格,前一个请求刚保存成功,后一个请求又把价格改了回去,结果前一个修改像没发生过一样?我是老李。最近在排查一个商品价格偶尔回跳的问题,现象很典型:线上日志显示两次修改都成功,但最终落库的却是旧值。顺着代码一看,两个线程都是先查后改再保存,保存时只按主键定位文档。后写的线程把先写的线程覆盖了。

《Spring Mongo实战》第10招 聚合不是SQL替身

《Spring Mongo实战》第10招 聚合不是SQL替身

我是老李。最近团队在做一个电商后台的报表模块,运营提了三个需求:按商品分类统计销售额、按品牌看价格区间、给商品算评分排行。听起来很标准,几位后端同事第一反应全是 SQL 里的 GROUP BY,想着把订单表 join 商品表再 group 一下。可我们的明细数据存在 MongoDB 里,订单子项是数组,分类和品牌又在商品文档里,有些评分数据还落在另一个集合。...

《Spring Mongo实战》第11招 索引跟着查询走

《Spring Mongo实战》第11招 索引跟着查询走

昨晚凌晨两点,运维群又炸了:订单查询超时,MongoDB CPU 飙到 95%。我打开慢查询一看,一个简单的租户商品筛选居然扫了 40 万行。更离谱的是,这个集合上建了 18 个索引。我是老李,这几年在云上帮不少团队收拾过 MongoDB 的烂摊子。今天不聊玄学,就聊一个被很多人忽略的原则:索引不是看到字段就加,而是从真实查询模式反推。

《Spring Mongo实战》第16招 Reactive什么时候用

《Spring Mongo实战》第16招 Reactive什么时候用

凌晨两点,商品中心的告警又响了。库存变更接口被前端轮询疯狂调用,数据库连接池直接被打满,MongoDB 主节点 CPU 飙到 90%。我是老李,一个在电商后端摸爬滚打十年的老兵。最近我在改造商品实时更新链路时,被一个问题卡了很久:为什么 Spring Data MongoDB 明明支持响应式,可我把返回值从 List 换成 Mono 之后,性能没提升,反而线...

《Spring Mongo实战》第17招 Geo做附近门店

《Spring Mongo实战》第17招 Geo做附近门店

周末晚上快十点,运营群里突然炸锅。用户反馈附近门店一直转圈,点进去十几秒不出列表。我是老李,后端开发。第一反应去监控平台看,果然门店接口 TP99 已经 4.8 秒,慢查询堆成山。这个接口的逻辑不复杂:根据用户手机传来的经纬度,查 5 公里内的门店,再按距离从近到远排序,同时支持品类过滤和只看营业中。当初图省事,门店数据放在 MySQL,坐标用了两个 dec...

《Spring Mongo实战》第18招 GridFS别当OSS用

《Spring Mongo实战》第18招 GridFS别当OSS用

排查一个商城下载慢的故障时,我们发现商品说明书 PDF 全被编码塞进了 MongoDB。文件单个不大,但数量一多、并发一高,主库 CPU 和网络被拖得很惨。我是老李。这类问题不是第一次遇到。很多团队看到 MongoDB 支持 GridFS,就认为文件存储有了官方答案。今天把 GridFS 的原理、Spring Data 操作方式、以及“为什么生产图片视频还是...

《Spring Mongo实战》第24招 做到真正能上线

《Spring Mongo实战》第24招 做到真正能上线

最近团队接了一个项目,要做一个多租户商品与内容中心。商品不是标准 SKU,每个租户都能自定义字段;商品要有 SKU、价格、库存、分类、搜索、批量导入、附近门店、附件、变更通知,甚至还要语义搜索。我是老李,一开始觉得这事不难,Spring Boot 里引入 spring-boot-starter-data-mongodb,写几个 MongoRepository...

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册