MQ 崩溃,服务雪崩,刚毕业的菜鸟居然充当了救火队长

一次PO 级线上事故

刚毕业时,我在一家互联网公司参与了一个云计算系统的建设。有一天,由于 RabbitMQ 集群的故障,系统几乎完全不可用。我们不得不重启整个 MQ 集群,才让服务恢复正常。在故障处理完毕的第一时间,我私下和领导进行了沟通,讨论如何优化系统以避免再次发生问题。

当时系统是单体服务,自生成自消费MQ 消息,因为依赖 MQ 进行了各个子流程之间的所谓"隔离"(实际完全没有必要),所以当 MQ 不可用时候,服务也跟着雪崩。同时因为历史原因,RabbitMQ集群是我们组自行运维的,公司有自研的MQ,有专门中间件团队负责技术支持和运维,他们不管我们自建的 RabbitMQ 集群。基于这些原因,当RabbitMQ 集群崩溃后,我们无法有效运维,只会重启。系统非常不可靠,就像盲人骑瞎马一样危险

我们领导计划下掉系统对 MQ 的依赖。然而系统大量依赖 MQ ,想下掉谈何容易。但是我只改动了三四行代码,就将服务从对 MQ调用改为对自身方法的调用,对业务层代码完全没有修改,改动成本非常低。无论在功能和性能上都优于原方案。

领导听到我的想法,看完我的代码以后,他感到非常惊讶,问我:"你是怎么这么快就找到成本如此低的办法呢,以后要多做一些系统优化,成本低收益高的"

台上一分钟,台下十年功---------这就是学习的意义

得益于平时的努力,我在周末常常研究公司的项目。我把系统底层的数据库、MQ等工具类和组件都仔细研究透了。刚毕业时,虽然我对系统的架构设计经验不足,不清楚什么是好的,什么是坏的,经验很欠缺,但是当系统出现问题时,我可以迅速想出解决方案。问题一出现,我立即能够想到最低成本、最快时间的解决方法!

等到开复盘会议时,该系统漏洞早已经被我堵上了。我充当了这次事故的救火队员,又快又好的解决了问题,也得到了领导的赞赏。

现学现卖不可取

我刚毕业的时候,曾经相信现学现卖的原则,即只在工作需要时才去学习,以提高效率。我认为平时只需要专心做好本职工作,不需要花过多时间学习。毕竟学习挺苦的。

后来大学同学警告我,如果你王婆卖瓜,现学现卖,如果只是追求眼前利益,只想现学现卖,可能会错失很多具有挑战性和高产出比的机会,这些"好活"轮不到你,这时我才意识到,现学现卖实际上是一种非常消极的工作态度和生活态度。

后来我深刻意识到:台上一分钟,台下十年功。平时的勤奋付出,在关键时刻才能真正发挥作用。

正是平时下苦功夫,在关键时候才能派上用场,否则只得一边点头,一边说:我可以去学。

"虽然我不会,但是我可以学"。 老板和领导都喜欢员工拥有积极的工作态度。

但是如果有另一个下属说:我做过库存系统的调研,在业余时间写了一篇文章总结该系统设计的要点,总共分为哪几步(顺便把这篇文章发给领导)。当前我们的业务场景需要库存系统的哪些能力,在当前系统的性能要求下,库存系统技术方案如何选型。

那个 "我不会,但是可以学" 的同事除非是老板的绝对心腹、绝对要提拔的人,否则老板一定会让你主导该系统开发。

这就是平时下功夫的重要性所在。当然,平时下功夫也要有明确的目标和方向。我们应该多学习常见的系统架构设计和中间件的原理和使用方法。随着工作年限的增长,这些知识迟早会派上用场。

机会只会留给有准备的人!平时要努力,关键时候才能去争!

大家好,我是五阳,负责过云计算、营销系统、虚拟订单售卖系统的建设,长期在互联网大厂混。

我喜欢分享真实的工作经历和工作经验,关注我主页,获取更多的架构设计和工作经验分享!

相关推荐
用户2986985301412 分钟前
.NET 文档自动化:Spire.Doc 设置奇偶页页眉/页脚的最佳实践
后端·c#·.net
序安InToo43 分钟前
第6课|注释与代码风格
后端·操作系统·嵌入式
xyy12343 分钟前
C#: Newtonsoft.Json 到 System.Text.Json 迁移避坑指南
后端
洋洋技术笔记1 小时前
Spring Boot Web MVC配置详解
spring boot·后端
JxWang051 小时前
VS Code 配置 Markdown 环境
后端
navms1 小时前
搞懂线程池,先把 Worker 机制啃明白
后端
JxWang051 小时前
离线数仓的优化及重构
后端
Nyarlathotep01131 小时前
gin01:初探gin的启动
后端·go
JxWang051 小时前
安卓手机配置通用多屏协同及自动化脚本
后端
JxWang051 小时前
Windows Terminal 配置 oh-my-posh
后端