说几个拖垮系统的小细节!

本文首发于个人微信公众号《andyqian》,期待你的关注!
前言

  有好几天没有更新了,期间确实比较忙些,以至于周末也没休息。在这期间,感触还是蛮深的。现在碎片化的想法等整理好后,再以文章的形式分享出来。今天要说的是另外一个主题。我们在做系统设计时,时常会遇到系统中的一些小细节。成为系统的瓶颈。活生生的拖垮系统。那么到底是谁拖垮了你的系统呢?这就是今天要说的主题。

万恶的超时时间

  这是一个容易忽略的小细节。但同时也是一个雷点。一不小心就会入坑。在超时时间方面,主要体现在: Http 接口请求时间,读取时间等。服务之间调用超时时间等等。

试想一下: 我们在请求时没有设置超时时间会发生什么

以登录为例,如下图所示:

28095852_35fB.jpg

流程:用户点击登录后,你服务内部没有设置请求超时时间。假设用户服务不稳定,一致在等待用户服务返回结果。此时线程一直挂起。导致客户迟迟没有接收到响应。严重时甚至导致app闪退。

慢SQL

  在数据库方面优化,在之前的MySQL系统文章中说过不少。主要分为存储引擎的选择。以及SQL优化。在SQL优化方面有索引的合理选择,在索引选择方面,我们可以通过区分度来作为索引字段选择的依据。以及通过执行计划作为SQL优化的参考。其中还需要特别注意是《隐式类型转换》。其实数据库优化还包括很多。在此处提及的还仅仅只是应用层面上的优化。在一定量级的系统中。慢SQL常常是拖垮系统的主要原因之一。

由大化小

  这主要采用的是分而治之的思想。这种思维我们可以应用到多种场景。例如: Http请求。数据库请求。在进行数据操作时,我们尽量少用大事物。提交到数据库中执行的SQL。尽量简洁,执行快。其实这也很容易明白。例如: 一共有400百斤粮食,你一次挑的话,肯定是会被压垮的。这时候。我们可以采用多次少量的方法来进行。从而不会造成系统压力。在系统中,也是同样的道理。

小结

  上面是系统中几个常见且容易忽略的细节。常常也是拖垮系统的雷点。这里做抛砖引玉。还有什么坑了大家的系统的。欢迎大家在评论区留言。

推荐阅读:

Java生成PDF的若干坑

记一个有趣的Java OOM!

浅谈MySQL SQL优化

浅谈MySQL表结构设计

 

这里写图片描述

 扫码关注,一起进步

个人博客: http://www.andyqian.com

转载于:https://my.oschina.net/u/1462914/blog/1786031

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值