夺命故障!炸出了投资人! (夺命凶弹炸车是什么)

教程大全 2025-07-18 19:03:38 浏览

我听说,牛x的人,都关注整体,不关注细节,因为他们觉得没必要;我也听说,管理的哲学,就是协调资源,让人俯首甘为孺子牛,不达目的不罢休。

在这种环境下耳濡目染很多年,人生就有一股若有若无的错觉:管理可以解决一切问题。如果管理解决不了,那一定是流程的问题。

但看了PDD这种企业的管理方式以后,信仰再次转折,我又觉得这是错误的。PDD的管理模式,打脸了所有高校的《管理学》课程,让所有从事管理工作的人,颜面扫地。

只要钱给够,不需要什么管理!只有没钱的穷B公司才在哪里文邹邹的搞管理。要说高能的、正统的管理学,那非传销莫属。

话说的有点远,已经进入了跑题的路上,我们需要用一个故障把它拉回来。

1. 出故障了

没办法,干it这一行,就得天天面对故障,大家就是传说中的消防员,到处救火。不过,这次的故障范围有点大,宿主机都打不开了。

好在监控系统留下了一些证据。

证据发现,机器的CPU、内存、文件句柄,随着业务的增长,持续的上升…上升….,直到监控也无法将信息收集上来。

要命的是,这些宿主机上,部署了非常多的Java进程。没别的原因,就是为了节省成本,混部了应用。当宿主机表现出整体性的异常时,就难以找到罪魁祸首。

因为远程登录也Over,暴躁的运维只能重启机器,重启机器之后开始重启应用。经过漫长的等待,所有的进程都活了,但是,仅仅过了片刻,宿主机又立即死去。

业务一直处于死翘翘的状态,真是让人恼火啊。也让人心急。尝试过几次之后,运维崩溃了,启动了紧急预案:回滚!

最近的上线记录有点多,而且有开发人员私自上线部署的行为,运维蒙圈了:回滚哪些呢?还好有人脑瓜一亮,想起了还有find这个命令,那就找到最近更新的所有jar包,都给它来次回滚吧。

夺命故障!炸出了投资人!

如果你不知道find这个命令,那可还真的是一场灾难。还好有人知道。

把十来个jar包回滚,还好没有碰到数据库的schema变更,系统终于正常运行了。

2. 找原因

没别的办法,查日志,进行代码审查。

代码审查要追溯到最近1周或者2周之内的代码改动,因为有些功能代码要沉淀一段时间,才能到线上风光一把。

看着满屏的提交记录“OK”,技术经理的脸都绿了。

“xjjdog说过,《80%的程序员,不会写commit记录》,我看你们是100%都不会写”。

大家都静悄悄的,忍着痛翻查历史变更。经过大家的不懈努力,终于在屎山之间,找到了一些问题代码。CxO亲自建了个群,大家一股脑的把可能会出问题的代码,扔到了群里面。

“系统服务中断了接近一个小时,影响非常恶劣”,CxO说,“务必把问题彻底解决掉,这个问题投资人非常关注”!

okokok,有了钉钉的助力,大家的手势都变得整齐划一。

3. 线程池的参数

代码有点多,大家对问题代码讨论了老久。包括一些使用并行流的,还有套在lamba表达式里的炫技代码,还重点排查了一些线程池的使用代码。

最后大家决定还是对线程池的代码再过一遍。其中有一段是这么写的。

还别说,参数有模有样的,甚至考虑到了拒绝策略。

Java的线程池,使得编程变的非常简单。它有很多参数,如上图,我们一一介绍一下,否则代码是无法审查的。

下面来介绍一下它们的关系。

当线程数小于核心线程数的时候,有新的任务到来,将会生成一个新的线程进行服务。当当前线程数大于核心线程数,而且阻塞队列未满的时候,将会把任务放在阻塞队列中。当线程数大于核心线程数,而且阻塞队列满了的时候,将会创建新的线程进行服务,直到线程数到达maximumPoolSize的大小。此时,如果还有新的任务,将触发拒绝策略。

再说一下拒绝策略。jdk默认实现了4种策略,默认实现的是AbortPolicy,也就是直接抛出异常。下面介绍其他几种。

这段线程池的代码是新加的,参数设置还算正常,并没有什么大的问题。唯一有可能的风险,就是使用DiscardOldestPolicy 的拒绝策略。当任务非常多的时候,这个拒绝策略会造成任务排队,请求超时。

当然不能放过这种风险,说实话也是到现在为之能够找到的最可能的风险代码了。

“把DiscardOldestPolicy 改成默认的AbortPolicy吧,重新打包上线一下试试“。技术大牛在群里说。

4. 问题在哪里?

结果,服务灰度上线之后,宿主机不多时,就死掉了。是它的原因没跑了,但是why?

线程池的大小 ,最小100,最大200,说什么也不过分。阻塞队列的容量只有10,说什么也不会造成问题。你要说是这个线程池造成的原因,打死我都不信。

但是业务部门反馈,这段代码加上就死,不加就没事。技术大牛们抓耳挠腮百思不得其姐。

到最后,终于有人忍不住了,下载下业务的代码打算调试一下。

当他打开Idea的时候,瞬间懵逼了,又瞬间领悟了。他终于明白了这段代码为什么会产生问题了。

线程池,竟然是在方法里创建的!

当每一个请求到来的时候,它都会创建一个线程池,直到系统再也无法分配资源为止。

可真是霸道啊。

所有人都在关注线程池的参数是怎么设置的,但从来没有人怀疑这段代码所在的位置。

5. 结尾

问题低级又常见,现在我严重怀疑拒绝策略也是网上拷贝的代码。

那么多码农,熬夜选择了个业务低峰期进行上线,还是躲不过命啊,躲不过猪队友的伤害。

当然,这还说明了另外一个问题:技术能力跟不上,再牛的管理也爱莫能助。

最后,连投资人都施压的故障,几乎没有人愿意去实际的翻一下业务的代码看看。这得多大的屎山,才让人这样避而远之,生怕把自己的羽毛染臭啊!

作者简介:小姐姐味道 (xjjdog),一个不允许程序员走弯路的公众号。聚焦基础架构和Linux。十年架构,日百亿流量,与你探讨高并发世界,给你不一样的味道。我的个人微信xjjdog0,欢迎添加好友,进一步交流。


买ETF基金会涨价吗

ETF基金是属于场内交易型基金,买这类基金是用证券账户买的,和上述管理条例是没有关系的,那是针对场外交易的基金,其实买基金最好是选择场内交易,新手带身份证到证券公司或者银行开户就可以买卖基金啦,到银行申购的全是开放式基金,在银行买基金是最贵的,目前购买卖开放式基金主要有三个渠道,最便宜的是在场内交易买卖:
证券公司开放式基金,指数基金,封闭基金,LOF基金,股票,权证,债券,都可以买卖,开放式基金有540多种,
一。银行申购:是最差的一种买卖基金方法:前端收费要申购费1.5%,赎回费0.5%,后端收费按2%左右收取赎回费,不过那是属于持有不超过半年的情况,赎回费是按年递减收取的,一般持有超过3年就免赎回费。每个银行可以购买大约100来种基金,钱还要4—7天到帐,时间长。说不定行情变化了,你想再申购,可是钱没有到帐。是最差的一种买卖基金方法。
二。直接从网上去基金公司申购:要申购费1.5%可以打6折,赎回费0.5%。每个可以基金公司购买自己的基金,要从网上去多个基金公司注册。开通网上银行,赎回时钱要4—7天到帐,时间长。说不定行情变化了,你想再申购,可是钱没有到帐。开通网上银行,从网上去多个基金公司注册,比较麻烦,是较差的一种买卖基金方法。
三。开通证券账户,坐在家里,网上申购,不必去银行。在证券公司购买基金:买入申购费0.3%.卖出赎回费0.3%,开放式基金如:南方积极配置,南方高增广发小盘基金,还可以买指数基金就是8个ETF基金,如:易方达深100ETF 华夏上证50,,友邦红利ETF,好处是费用低,在证券公司买卖基金手续费0.3%,不要印花税,资金到帐快,即时到帐,即时使用,可以避免赎回的4-7天的等待。

现代年轻人应该怎样理财

理财要养成的六种习惯习惯一:记录财务情况。 能够衡量就必然能够了解,能够了解就必然能够改变。 如果没有持续的、有条理的、准确的记录,理财计划是不可能实现的。 因此,在开始理财计划之初,详细记录自己的收支状况是十分必要的。 一份好的记录可以使您: 1、衡量所处的经济地位———这是制定一份合理的理财计划的基础2、有效改变现在的理财行为3、衡量接近目标所取得的进步 特别需要注意的是,做好财务记录,还必须建立一个档案,这样就可以知道自己的收入情况、净资产、花销以及负债习惯二:明确价值观和经济目标了解自己的价值观,可以确立经济目标,使之清楚、明确、真实、并具有一定的可行性。 缺少了明确的目标和方向,便无法做出正确的预算;没有足够的理由约束自己,也就不能达到你所期望的2年、20年甚至是40年后的目标习惯三:确定净资产一旦经济记录做好了,那么算出净资产就很容易了———这也是大多数理财专家计算财富的方式。 为什么一定要算出净资产呢?因为只有清楚每年的净资产,才会掌握自己又朝目标前进了多少习惯四:了解收入及花销很少有人清楚自己的钱是怎么花掉的,甚至不清楚自己到底有多少收入。 没有这些基本信息,就很难制定预算,并以此合理安排钱财的使用,搞不清楚什么地方该花钱,也就不能在花费上做出合理的改变习惯五:制定预算,并参照实施财富并不是指挣了多少,而是指还有多少。 听起来,做预算不但枯燥,烦琐,而且好像太做作了,但是通过预算可以在日常花费的点滴中发现到大笔款项的去向。 并且,一份具体的预算,对我们实现理财目标很有好处习惯六:削减开销很多人在刚开始时都抱怨拿不出更多的钱去投资,从而实现其经济目标。 其实目标并不是依靠大笔的投入才能实现。 削减开支,节省每一块钱,因为即使很小数目的投资,也可能会带来不小的财富,例如:每个月都多存100元钱,结果如何呢?如果24岁时就开始投资,并且可以拿到10%的年利润,34岁时,就有了20,000元钱。 投资时间越长,复利的作用就越明显。 随着时间的推移,储蓄和投资带来的利润更是显而易见。 所以开始得越早,存得越多,利润就越是成倍增

怎么才能买B股?去哪兑换外币?

到大一点的银行柜台就可以兑换外币, 办理B股开户投资者如需买卖深、沪证券交易所B股,应事先开立B股帐户。 B股开户步骤第一步:凭本人有效身份证明文件到其原外汇存款银行将其现汇存款和外币现钞存款划入证券商在同城、同行的B股保证金帐户。 境内商业银行向境内个人投资者出具进帐凭证单,并向证券经营机构出具对帐单;第二步:凭本人有效身份证明和本人进帐凭证单到证券经营机构开立B股资金帐户,开立B股资金帐户的最低金额为等值1000美元;第三步:凭刚开立的B股资金帐户,到该证券经营机构申请开立B股股票帐户。 深圳B股开户开户机构:中国证券登记结算有限责任公司(以下简称结算公司)作为深圳B股的法定登记机构,负责B股投资者开户业务。 一些证券营业部作为深圳B股开户代理证券商,也可代办B股开户业务。 投资者可选择证券登记机构代理开户点,或者具备从事深交所B股业务资格的证券营业部、结算公司所委托的开户银行办理B股开户。 办理手续(一)境外投资者 1.境外个人投资者提交:(1)境外居民身份证或护照、其它有效身份证件及其复印件。 (2)委托他人代办的,还须提供经公证的委托代办书,代办人的有效身份证明文件及复印件。 2.境外机构投资者提交:(1)境外商业注册登记证、授权委托书、董事身份证明书及其复印件、经办人身份证件及其复印件。 (2)若办理代理委托,还需要代理人的有效身份证及复印件和企业法人(董事)经公证的授权委托书(须有法人或董事的有效签字)。 (二)境内个人投资者 境内个人投资者需提交:(1)金额7800港元(相当于1000美元)以上的外汇资金进帐凭证及其复印件;(2)境内居民身份证及其复印件;(3)委托他人代办的,还须提供经公证的委托代办书,代办人的有效身份证明文件及复印件。 提交上述文件材料后,填写自然人或法人证券帐户申请表,在证券部B股柜台办理开户手续。 开户费用个人投资者每户120港元;机构投资者每户580港元。 上海B股开户开户机构凭B股资金帐户证明,到境内具有经营B股资格的上海证交所会员(证券商)申请开立B股股票帐户。 办理手续(一)境外投资者 1.境外个人投资者提交:(1)境外身份证、境外护照或中国护照及复印件;(2)若为代理人代开户人开户,须持有加盖开户人有效印鉴的授权委托书。 2.境外机构投资者提交:加盖公章营业执照复印件、法人委托书、经办人身份证及复印件。 (二)境内个人投资者 开户时须提交:(1)本人有效身份证明文件;(2)1000美元以上的银行进帐凭证。 提交上述文件材料后,填写上海B股投资者开户登记申请表,在证券部B股柜台办理开户手续。 开户费用个人投资者每户19美元;机构投资者每户85美元。 注意事项1.境内个人投资者办理B股开户可委托他人代办,但须提供经公证的委托代办书;2.境内法人不允许办理B股开户;3.境外个人投资者可委托他人代办,但须提供经公证的委托代办书;4.境外居住,但未取得境外永久居住权的,视同境内居民办理;5.除国家法律、法规和行政规章等另有规定外,一个自然人机构只能开立一个B股帐户。 证券营业部B股开户投资者在证券公司属下证券营业部开立B股保证金帐户,须提供以下文件原件及复印件一份(验原件,留复印件),并签署各项有关开户文件,预留印鉴或密码:(1)B股证券帐户卡(即B股代码卡);(2)个人身份证件;如果是机构,则提供机构营业执照、机构法定代表人签署的委托代理授权书、委托代理人身份证件;(3)代理开户的户主授予代理人各种权限的委托书;(4)沪市须办理指定交易。 选择交易方式 与A股一样,投资者在开户的同时,需要对今后自己采用的交易手段、资金存取方式进行选择,并与证券营业部签订相应的开通手续及协议。 目前证券营业部普遍存在的交易委托方式主要有:柜台当面委托、电话委托、传真委托、小键盘委托、触摸屏自助系统、远程可视委托和网上委托、手机委托。

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐