同一个接口,测试环境返回三秒,生产环境返回三百毫秒,没人知道为什么。我叹了口气,然后打开了编辑器。我打开了这个服务的依赖关系图,圈出了一个环形依赖。办公室安静得能听见键盘声
😂 IT段子
程序员日常、代码趣事、技术梗图,让你在学习之余轻松一笑
对方服务的接口没有幂等,重试了一次,订单变成了两个。我在心里把涉及的所有环节都过了一遍。我把这个接口的日志级别降到了 debug,生产环境立刻安静了。从此我多了一条团队规约
后端最擅长的事是把一个简单需求做成一次架构升级。我愣了两秒,然后继续敲代码。我打开了数据库的慢查询日志,发现有半张表都在扫
我加了这个字段之后,下游有三个服务需要跟着改。我在心里把涉及的所有环节都过了一遍。我在网关层加了限流,先把雪崩挡住再说。第二天这个方案就变成了团队标准做法
对方服务的接口没有幂等,重试了一次,订单变成了两个。我把这层的参数校验补全了,上游终于不能再乱传了。好在最后有惊无险
这个接口的文档和实现已经有两处对不上了。我叹了口气,然后打开了编辑器。我在心里给这个接口的 QPS 估了个数,真实值差了十倍。我把这条经验写进了团队 wiki
查了三小时的 bug,是缓存的锅;又查了三小时,还是缓存的锅。我把这个接口的日志级别降到了 debug,生产环境立刻安静了。我沉默了,但心里是服的
这个服务的超时设置是去年拍的,到现在没人动过。我抬起头看了看周围,大家都一样。我把 mvn dependency:tree 的结果拉了三屏,果然有版本冲突。同事说这波操作可以写进新人培训教材
这个服务的配置项有六十个,我认识其中的二十个。我把这个方法的参数对象拆开了,可读性提升明显。连茶水间都安静了
接口上线前一切正常,上线后流量成了新的变量。我停了一下,然后继续手上的活。我打开了这张表的主键结构,发现是联合主键且顺序不对。办公室安静得能听见键盘声