前言
對於Java程式員來說,在日常項目中總會存在各種各樣的問題,今天筆者就自己的切身經驗總結一下實際工作中經常遇到的問題和常見的解決方案,這裡面大概分四篇文章進行介紹:
第一篇基本工具篇,這裡所說的工具,不是監控、調優、IDE等工具,而是解決最常見的問題常用的工具和方法。例如對於Java程式員來說Jar包衝突毫無疑義是最為常見的問題,這裡會介紹最為常見的解決方案,以及對於線上應用如何線上追蹤等。詳情請見如何解決類衝突以及線上應用的方法追蹤
第二篇是效能調優篇,這裡會介紹一些在Linux平台上我們常用的調優工具和命令,包括CPU相關的監控命令、記憶體相關命令、網路相關命令,如top、pidstat等,掌握這些常用的工具對於解決問題來說絕對是事半功倍。詳情請看Java程式員不得不掌握的常見排查、調優相關命令
第三篇是日誌相關總結,很多人覺得日誌這個東西,就是記錄而已,對於日誌的使用領會不夠深入。實際上對於一個好的線上應用來說日誌打的好壞,某種程度上決定了你日後維護的成本。也許你很難想到,打日誌也會引發故障、嚴重的時候會導致系統Down掉,這裡會好好的介紹一下如何正確的使用日誌,以及常見的問題和經典案例。詳情請看一個日誌引發的血案
第四篇是Java和”大資料”相關的常見解決方案,這裡說“大資料”確實有點嘩眾取寵,但確確實實是解決一些大資料量的情況。比如常用的布隆過濾器(BloomFilter)、常用的文本相似比較演算法SimHash等,這裡介紹的都是看上去是簡單粗暴的方法,但當你深入瞭解後你就會發現什麼叫簡約而不簡單,掌握這些常用的手段,解決問題時就會顯得得心應手。詳情請看簡單粗暴的“大資料“解決方案
第五篇是平台相關,這篇應該更適合那些初入職場一年或者還在學校的或者在找工作的應屆生看,向你講解一些你應該掌握或瞭解的相關中介軟體、架構、平台等,掌握這些能讓你拓寬你的技術視野,增加自己的核心競爭力。這裡會著重向你推薦一些緩衝、Storm、Zookeeper、Spark等,你可以不必全部都深入瞭解,但至少應該知道一些比較重要的細節問題。詳情請看Java初級工程師應該掌握的相關開源產品。