让我们听首歌,我们慢慢说。。。诉说这迷人的冬天,诉说这绵绵不绝的哀怨,诉说这落叶的秋思。。。
序
生产环境报错,报错connection timeout,连接数据库超时,应用报错,跳过了PAAS层,直接将报错信息丢到IAAS层。。。。
IAAS拿到了数据库实例名,查询相关的数据库状态,一切正常,now 。。。how to do???
反馈应用层,数据库一切正常。。。问题陷入了困境,这个错连续报错三次,那么还会不会报错??没人知道,没人了解,没人清楚。。。
这时候PAAS出来了,这个错误是因为数据库的dirty connection。。。为啥会出现这个错误,因为PAAS没有配置相关的参数啊。。。
PAAS成了盖世大英雄。。。救火英雄,在关键时刻解决了客户的疑惑。。。
那么谁是大英雄???救火队员这种人是要活活打死还是要好好的养着呢???
延伸。。。。
运维是干啥?运维是为了保证应用的高可用性,不中断用户的业务,解决客户的疑问,其实最重要的就是。。。。有事的时候没运维啥事,有锅的时候运维来抗。。。
我可能不适合做运维。。。。我喜欢将问题消灭在萌芽之中,我喜欢在问题发生之前就解决掉,我喜欢在还没出问题的时候就弄出来很多的应急预案。。。
我可能不适合做运维。。。。我不喜欢看见任何告警,我不喜欢书写任何故障报告,我不喜欢看见应用的可用性低于SLA值。。。。
我可能不适合做运维。。。。我不会甩锅,我不会拒绝别人甩过来的锅,我最喜欢背锅。。。要不然怎么一身黑呢。。。。
我好忧伤,我当不了盖世英雄。。。哈哈。。。。
乱世之中出英雄。。。。太乱了,才会有英雄。。。
自动化运维做好了,出不了英雄。。。。应急预案做好了,出不了英雄。。。。平常没事多检查,也出不了英雄。。。。除非。。。碰到了BUG。。。。
思维与指尖的灵动
过了这么久,终于看到一点点有技术含量的操作,我已经等待了一万年,然而仅仅只包含了一点点思想。。。
许久以来,有的只是没有灵魂操作。一个个行尸走肉式的木偶。。。
手指的灵动,弹奏出美丽的旋律,而思维的流畅度则决定了手指的流动。
你的脑子被驴踢了。。。。。还是你的脑子不见了。。。手指再修长,没有乐谱,也不能奏乐一章。。。
灵动的思维。。。。跳跃的思维。。。出其不意的想法。。。。这样才能舞一曲。。。
有人有剑谱,练成了辟邪剑谱。。。。有人有剑谱,练成了独孤九剑。。。。好好的一个人,被他们玩成了狗。。。
什么样的操作最迷人?什么样的手指最有魅力?弹指一笑间,灰飞烟灭。。。
没有思维的灵魂根本无法浪迹江湖。。。
灵魂在哪里?灵魂其实就是核心。。。a kernel。。。。很多设计上令人心醉的操作,总是能解决常人无法解决的难题,用最迷人的方式来完成这一操作,这背后蕴含的思想才是最迷人的操作。。。
为啥很多人只谈操作不谈思想,因为其思想龌龊低级下流卑鄙垃圾。。。。操作可以五花八门,但是掩盖不住那堕落的思想,灵动的思想都是经过了时间的考验,例如。。。linux的kernel。。。
为啥很多人知道很多指令而不能领悟其精华,因为没有领悟到其中的精髓,因为脑子里都是水,因为很多人只知道剑招,而剑术最高的境界就是心中有招而手中无招。。。
学会一套手法其实还是比较简单的,但是背后的思想又要花费多少时间去领悟。。。。悟道,歧路漫漫长远。。。
谈谈脏连接
千年难遇一次的脏连接,到底有多脏。。。。我也是服,这都能碰到。。。我不信啊,但是。。。我碰到了啊。。。尼玛啊。。。
一般应用在连接数据库的时候,都会设置一个连接池,连接池也就是一些会话session,和应用一直保持着长连接,当应用需要连接数据库发起查询或者其他操作的时候,就会直接使用连接池里面的连接信息,从而增加查快的速度,无需进行TCP的三次握手,四次断开,而在连接池中的这些连接在服务端可以设置超时时间,其实也就和http中的长连接的概念是相似的,在mysql中会有两个参数的设置,一个参数是wait_timeout,设置服务端关闭非交互连接等待的秒数,也就是在mysql服务端需要回收资源的时候,如果这个连接是非活动连接,那么等待这个时间,服务端会主动断掉这个连接;interactive timeout主要是用来设置服务端关闭交互连接等待活动的秒数,也就是这个连接如果一直活动,但是到了这个时间,服务端也会强制关闭这个连接。
mysql连接丢失。。。。the last packet sucsessfully received。。。在应用层可以进行重连,使用参数未autoReconnect=true或者在连接池配置中使用参数validationQuery和testOnBorrow。。。或者直接在中间件进行配置,使用简单的sql语句每分钟检测一次即可。。。
心跳检测。。。好可怕。。。啥时间心跳不行了,这个连接就要被杀死了。。。所以。。。每天要摸着良心做运维。。。
领取专属 10元无门槛券
私享最新 技术干货