用 Docker 搭建配置中心的完整流程
用 Docker 搭建配置中心的完整流程 最近迁移一个跑了快两年的小项目,才发现配置文件散落在三台服务器上,改个 Redis 地址得挨个登上去 sed 一遍再重启服务,中间还漏改了一台,排查半天才发现是两边配置不一致。痛定思痛,决定搭个配置中心。选型看了一圈,Apollo 功能是全但太重了,Consul 又没有原生的配置管理界面,最后选了 Nacos,单机模式一个容器就能跑,对我这种小项目来说刚刚...
阅读更多用 Docker 搭建配置中心的完整流程 最近迁移一个跑了快两年的小项目,才发现配置文件散落在三台服务器上,改个 Redis 地址得挨个登上去 sed 一遍再重启服务,中间还漏改了一台,排查半天才发现是两边配置不一致。痛定思痛,决定搭个配置中心。选型看了一圈,Apollo 功能是全但太重了,Consul 又没有原生的配置管理界面,最后选了 Nacos,单机模式一个容器就能跑,对我这种小项目来说刚刚...
阅读更多性能优化手记:灰度发布 排查全过程 起因 上周给订单详情服务发了个新版本,改动不大,就是在接口返回里加了个用户标签的展示,照例先灰度 5% 的流量,观察半小时没问题再全量。结果发上去还不到十分钟,告警群就响了,P99 从平时 80ms 左右直接飙到 500 多毫秒,灰度实例上尤其明显。 第一反应肯定是回滚,但转念一想,才 5% 的流量,影响可控,不如先按住别动,趁这个机会把原因查清楚,不然回头全量...
阅读更多Nginx 反向代理 蓝绿部署 配置详解 起因很简单:站点每次更新,我都是直接把旧进程一杀,换包重启,那十几秒里所有请求全是 502,有人正在用就直接被踢出去了。之前流量小都忍了,直到有一次更新正好赶上有人在操作,群里当场有人问“网站挂了?”,怪尴尬的。于是琢磨着搞蓝绿部署,说白了就是同时跑两套一样的服务,一套对外服务(蓝),一套闲着(绿),更新只更新闲的那套,测好了把流量切过去,全程不断线。 原...
阅读更多Go 语言 任务调度 实战:从原理到落地 起因 前段时间接手了一个内部小服务,打开一看,里面塞了十几个定时任务,全是一个套路:起个 goroutine,里面 for 循环加 time.Sleep。跑是能跑,但改个执行周期要重新编译发版,任务 panic 了进程直接挂,日志里也完全看不出哪个任务几点几分跑的、跑了多久。想着反正要重构,干脆把 Go 任务调度这块从头到尾捋一遍,顺手把踩的坑记下来,就有...
阅读更多Git 工作流中的 鉴权体系 最佳实践 前几天帮同事排查问题,他重装系统过后代码拉不下来了,push 一路报 Authentication failed。我瞄了一眼他的 remote 地址,好家伙,token 直接拼在 URL 里,还是两年前生成的,早过期了...说白了就是当年图省事埋的雷。趁着这个机会,把我这几年在 Git 鉴权上踩过的坑和最后固定下来的一套做法整理一下,都是实测可用的。 HTT...
阅读更多React 项目中 任务调度 的设计取舍 最近在改一个数据看板的项目,首页一个页面要并发拉三十多个接口,然后渲染一堆图表和表格。测试机上一打开,浏览器直接卡住好几秒,接口那边还报了限流。同事说要不加个 loading 遮罩吧,我心想这不是 loading 的事,是任务全挤在一瞬间了。于是就开始折腾任务调度这摊子事,中间踩了不少坑,记录一下,顺便聊聊每个方案的取舍。 问题到底出在哪 先把问题拆开看,...
阅读更多PostgreSQL 索引与 鉴权体系 的正确姿势 前阵子接手了一个跑了五六年的老项目,用户天天投诉列表页慢,打开 pgstatstatements 一看,最狠的一条查询要跑十几秒。顺手查了下账号,发现全公司共用一个 postgres 超级用户直连生产库,密码还是老掉牙的 md5。趁着这次优化,把索引和鉴权一起收拾了,中间踩了不少坑,记下来,省得下次又去翻文档。 索引不是建了就快的 先说结论:别猜...
阅读更多性能优化手记:优雅停机 排查全过程
阅读更多Git 工作流中的 日志采集 最佳实践 前阵子项目要发版,让我整理一份更新日志。我打开 git log 一看,几百条 commit,"fix"、"update"、“改了个bug” 全混在一起,中间还夹着几十条 merge commit,看得我头大。手动整理是不可能的,这辈子都不可能手动整理的,于是就想办法把这件事自动化掉。 网上搜了一圈,什么 conventional commits、semant...
阅读更多熔断:写给初学者的通俗解释 前段时间项目里有个服务半夜报警,爬起来一看日志,发现挂的原因特别憋屈:它自己代码一点毛病没有,是它依赖的下游服务卡住了。一个请求卡住不要紧,结果新请求源源不断地进来排队,最后把它也活活拖死了。修完之后我就去补了补熔断相关的知识,结果发现网上讲这东西的文章不是术语满天飞就是直接甩框架文档(也可能是我搜的关键词不对,反正当时没看到几篇讲人话的...),所以干脆自己写一篇大白...
阅读更多