欲速则不达

有时候你觉得差一点点的东西, 其实差的还是蛮大的。路要一步一步走,饭要一口一口吃。

Posted by 广陵观涛 on January 31, 2019

《你凭什么做好互联网》是有号称互联网百晓生的曹政老师2018年出的一本书。 虽然书中很多文章已在曹老师的公众号(曹政的梦呓)里看过,但是当知道曹老师出了这本书后,还是第一时间买回来。 总的来说这本书的书名貌似很高调(其实很不符合曹老师的风格),但是其中每篇文章都值得互联网从业者一一细读, 书中说的很多问题都是我们IT从业者经常碰到的问题,并且曹老师总是提供了一种非常理性的思路来分析并解决问题,而不是拍脑袋。

这本书读起来很轻松,因为就像上面说的,每个案例都像是我们自己遇到的一样,不管你是设计,开发,测试,运营,产品。还是老板,员工,CTO,CEO,CFO。 总有一款问题适合你。

这本书买回来有几个月了,之所以现在提起来,是因为今天顺手翻的时候发现一篇文章和我上周做的事情比较起来非常能说明一些问题。 上周公司几个人针对公司的solr集群出现慢订单的问题讨论了解决办法,然后让我来做优化,由于之前已经有同事陆陆续续优化一段时间,但是效果不佳,所以当时提出使用elasticsearch来替代solr试试。 于是,我开始安装elasticsearch集群折腾数据。那么我的做法有没有问题,有什么问题呢。我当时并没有考虑,但是看看作者在《欲速则不达》这篇文章是怎么说的。

书中说,作者之前做事情非常急,无论什么事情都恨不得一两天搞定。但是后来发现急也没用,有时候你觉得差一点点的东西,其实差的还蛮大的。路要一步步走,饭要一口一口吃。 以下为书中原话,我摘录下,之所以完全摘录是因为感觉这段话简直就是对我们说的,内容稍微有点长:

“ 一个创业公司,业务发展不错,流量开始起规模。然后服务器开始扛不住,老板着急,花重金请巨头专家会诊,方案给出,这架构各种不对,重构,从存储到数据结构到开发环境全部改造。

这样对吗?巨头专家说的方案不能说不对,但是创业公司,还没到巨头公司这个体谅,再从人才储备到积累来说,也没有这么深厚的基础。 更重要的是,干活的技术人员,其实并不知道自己的系统问题在那里,就要重构系统,用我的理解,就俩字——乱来。 正解是什么呢?你要让人家明白负载卡在哪里,系统问题在哪里….你说重构就好了,这些都不重要?下次出问题继续重构吗?你要让这个公司自己有学会发现问题和分析问题的能力,先学会搭建运维的监控和数据跟踪,学会基本的调优思路和分析逻辑,然后把当前紧要的额问题解决掉,让系统先满足当前的业务需求…”

又看到这句话的时候,感觉好像曹老师在啪啪打我们的脸啊。 虽然之前也看过这篇文章,当初领导让做优化的时候也有些质疑,比如要不要先把运行信息监控起来,找出问题。但是领导一说之前同事搞了两个月都没有效果啦….之类的就怂了,心想就按照领导说的做吧。

那么按照曹老师的思路如果要优化思路应该是什么呢,起码应该有下面一些步骤吧:

  • 将solr的运行时的内存占用,cpu占用,磁盘IO,运行日志监控收集起来,定位目前系统产生满订单的时候系统的状态。
  • 了解solr的性能并测试验证
  • 明确目前的性能要求,比如并发查询量,响应时间要求
  • 然后再定解决方法。