资讯中心
行业洞察、技术分享与服务案例。我们把项目里踩过的坑和总结的方法写下来,希望对正在做信息化建设的你有用。
Selected work
项目界面
交付过的真实界面,左右切换浏览,点击可放大看细节。
没有自建技术团队,企业如何稳定推进系统迭代
从代招聘、人员外包到整建制团队托管,不同的缺口对应不同的合作方式。关键是先把「要人、要团队,还是要稳定性」这件事说清楚。
阅读全文灰度发布脚本补了一行回滚
灰度脚本跑了两年没出事,8 月有次切到 50% 后发现新版本在旧安卓上有样式问题,想退,发现脚本只有「往前推」没有「往回退」,只能手动改 Nginx 权重,多花 12 分钟。后来加了一行 rollback,传比例就回退,跟推进共用同一套检查。
阅读全文Redis 缓存加限流,展会扫码报名峰值
展会扫码报名,峰值一分钟 600 多次提交。没加机器,做了三层:Nginx 按 IP 限流 20 次每分钟、Redis 存报名状态并做 10 秒去抖、写库前先查一个 60 秒的幂等键。静态页全放 CDN,表单提交走独立域名不缓存。现场 3 小时没 502。
阅读全文MySQL 索引优化,3 张表 join 从 4 秒到 0.3 秒
一个跑了五年的报表查询,3 张表 JOIN,月底一次要 4 秒多,多人同时点就排队。没分库没上缓存,先拿 EXPLAIN 摊开执行计划:一张表没走索引、JOIN 顺序不对、ORDER BY 触发了 filesort。补两个联合索引、改驱动表、把排序字段并进索引,最后 0.3 秒。
阅读全文HTTPS 证书自动续期,ACME 那次配置
手工换了几年证书,2025 年上自动续期。第一次配置踩三处:验证目录被 Nginx 的 location 挡了、续期后没 reload、定时任务跑完没记日志。改成 webroot 验证、reload 放 post-hook 里,脚本每次往一张表写一行到期日,30 天和 7 天各校一次。
阅读全文小程序分包再拆一次,主包压到 1.8M
2018 年把茶叶小程序主包从 1.9M 压到 1.1M,六年后又涨回 2.3M。这回不是图片的锅,是几年里塞进来的 5 个 npm 包、一套图表库和三个没人用的页面。除了再拆分包,还清了依赖、按路由懒加载、把 lodash 换成手写方法。主包最后 1.8M。
阅读全文Node.js 重写老 PHP 接口,兼容 3 个旧参数
一个跑了七年的 PHP 报表接口要迁到 Node.js,麻烦不在重写,在没人知道谁在调它。翻半年 Nginx 日志,找出 3 个带旧参数的调用方,其中 1 个是客户 Excel 里的宏。新接口留了兼容层:旧参数照收、内部转新字段、响应结构不变,还把调用来源记进日志。
阅读全文Prometheus 加 Grafana,先盯了 5 个指标
上监控没一上来堆几十个面板,先只盯 5 个数:接口 P95 响应时间、5xx 比率、MySQL 连接数、Redis 命中率、队列长度。Prometheus 抓,Grafana 画一屏,阈值写在旁边。跑了一个月才加第 6 个:磁盘剩余。告警只发到一个群,别一上来铺满手机。
阅读全文RabbitMQ 把订单和短信拆开
下单接口原来同步干四件事:写库、发短信、推企业微信、记日志,慢的时候 1.2 秒。把后三件丢进 RabbitMQ,接口只留写库和投递消息,降到 200 毫秒出头。踩过两个坑:消息没开持久化重启丢了 6 条、消费者没做幂等重复发了一次短信。
阅读全文接口幂等,重复提交那 3 笔订单
一个下单接口,同一笔订单被创建了 3 次,原因是前端超时重试,后端每次都当新请求。没上分布式锁,先在请求头里加了一个客户端生成的 request_id,服务端用它做唯一索引,重复的返回第一次结果。顺带把超时时间从 3 秒调到 8 秒,重试反而少了。
阅读全文Elasticsearch 搜 2 万条商品,分词调了两轮
商品库 2 万多条,MySQL LIKE 搜「铁观音」搜不到带后缀的品名。上了 Elasticsearch,第一版默认分词把「安溪铁观音」拆得太碎,出来一堆不相干的;第二版品名配 ik_max_word、搜索用 ik_smart,另加拼音字段。同步靠定时任务每 10 分钟增量跑一次。
阅读全文一次误删之后,MySQL 主从加备份
一条没带 WHERE 的 UPDATE 改掉了一张配置表的 400 多行,好在是配置不是订单。恢复用了 2 小时,从 binlog 里反推。事后加了三样:主从复制、每天凌晨全量备份加 binlog、以及所有 UPDATE/DELETE 必须走带行数确认的脚本。误删那次没人挨骂,规矩留下了。
阅读全文











