代码patch +行: 10958
上线次数:总计27次,每周一次的频率
工作内容:微博短链,短链统计项目。 10亿+pv,后台进程2000+qps 数据流处理。没完没了的第三方接入,苦逼的性能优化,mysql批处理,hbase数据库方案,倒库,双写,下双写。。。
应用技术:memcache redis mysql HBase分布式系统架构,vanish,concurrent多线程用法,jvm内存模型、内存分配调优和内存状况跟踪
工作收获:
- 减少无聊重复工作占用的时间:刚开始三个月都被耗了,自己也瞎玩浪费时间。现在有规则库后台,省得走改两行代码测试上线的苦逼费劲流程了
- 开始懂得做事考虑成本,估算资源消耗,考虑带宽,考虑怎么省机器
- 搞清楚问题所在,了解整个系统再去做优化:刚开始说是系统负载问题,改批处理减少IO,后来发现数据库容量也有问题,改hbase,探索,减少往后的开发维护。所以数据库容量,缓存消耗命中率,访问量统计,错误状况都要做了解才好动手。
- 搞清楚当前系统状况再去改代码:log你熟悉了吗就去改?改完了读数据源有延时也不清楚之前是不是也有,苦逼搞了一个月才蠔。jvm状况你清楚吗?改完发现内存溢出,查查查改改改,最后发现还是写数据库慢导致的对象不能销毁。当前系统是否有坑你知道吗?自以为是获取全量list,最后发现一个key对应的list之前系统根本没有删到500,一下取出几十万,把HBase给卡死。熟悉再动手,而不是像《cube》一样,转了一圈,死了大半,其实出口就在原点。
- 引进新技术充分考虑风险,问清楚目前应用状况。 已经应用但没有上线的项目,宣称很稳定使用的hbase,在你没熟悉它时去应用,会导致很多问题,引进新技术充分学习掌握它再动手,考虑学习时间,考虑好它的优缺点。
- 遇事淡定,技术人员,关注自己能控制的东西,遇到问题解决问题(这条by军伟);从每天纠结苦逼的要死,被电话和不稳定因素折腾得快疯掉到最*的*稳无事,一路走来,心态心态!
技术收获:
- 高并发经验,培养上亿pv的感觉
- 多线程实战
- HBase源码学习阅读,看别人怎么写的,自己模仿写写,算是有点起步深入的味道;HBase问题解决,每天和DBA一起分析日志,快速上线迭代,慢慢解决掉各种误用和本身HBase的参数设置问题
其他收获:
- 学会了游泳,每周两次,坚持生活节奏
- 20公里暴走雾灵山,35公里暴走五台山,不禁感慨团队生命力之旺盛。。。
- 认识各种疯子技术狂人