Java生產環境調優—線上代碼debug


最近在學習線上調優的課程,get一項小技巧,在此做個記錄分享,方便查閱。

      之前在上家公司上班的時候,有遇到過同樣的代碼跑在不同的服務器上的結果是不一致的,這時候怎么辦呢?當時還是缺少排查技巧。只能從理論來判斷問題出現在哪里。如果是在本地開發沒有問題,線上就有問題。那么可能性有很多,這里列舉一下自己知道的一些原因。

1⃣️本地和線上的版本不一致導致的

2⃣️配置文件不一致,因為線上的路徑跟本地的文件路徑會不一致,特別是Linux下面是沒有盤符的

3⃣️jdk的版本不一致

4⃣️數據庫的配置不一致。

哈哈,言歸正傳,來實際操作一下今天要分享的新技能。

  首先,在本地搭建一個以springboot為框架的web項目。在添加一個controller,寫一個簡單的方法,定義一個Grade類,然后改變類的屬性,最后輸出對應的日志。類見截圖:

  

 

這里用到了lombok技術,不懂得百度即可。 該服務我指定的訪問端口為9090,在application文件中配置就可以。構建完成之后,通過maven命令 mvn clean package -DskipTests,打成一個jar包,之后上傳到阿里雲服務器。

  其次,在服務器上啟動jar服務,命令如下: nohup java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=42917 -jar cloud-test.jar &,這里42917是遠程debug要訪問的端口,cloud-test.jar是服務名稱。查看nohup.out日志,看看是否成功啟動,命令:tail -f nohup.out。

 

 

   然后,在本地idea中打開項目,配置遠程remote信息,截圖如下

 

 

 配置完成了,點擊debug按鈕,啟動成功后會有如下信息。

 

 最后在55行打個斷點,打開瀏覽器,輸入服務器ip+項目端口號+方法訪問路徑。ok,斷點成功進來。嘗試成功,雖然大多數情況線上不會給debug的機會,但是多掌握一門技術,說不定哪天就用到了呢。

  結束語:不積硅步無以至千里。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM