用友雲開發者中心助你上雲系列之在線調試

如今,你們開始愈來愈多的談論到高可用架構的互聯網應用。什麼是高可用?高可用HA(High Availability)是分佈式系統架構設計中必須考慮的因素之一,它一般是指,經過設計減小系統不能提供服務的時間。
當咱們談論服務高可用的時候,咱們一般聚焦在高併發、大流量、高可用性等關鍵字,企業上雲,這些問題也是不可避免的。互聯網應用正在由單體應用架構演變爲微服務架構,服務的拆分,使得部署在雲的運行實例也指數級的增長。
可是!測試再充分的服務,在線上運行起來後,均可能會出現問題。這些問題可能跟架構設計有關,也多是爲了快速響應用戶需求在快速迭代中帶來的BUG.這些缺陷如同大堤上的蟻穴,隨時可能會引發線上服務的總體崩潰。
clipboard.png
在這種狀況下,咱們就須要研發人員能迅速定位問題,並將修復問題後的版本在用戶無感知的狀況下快速上線,將缺陷的負面影響最小化。而線上問題的快速定位無非從日誌分析、性能監控、線上環境的遠程調試等幾個方面入手。不一樣的方式適用於不一樣情況,各有千秋。但在這些解決方案中,基於線上環境的遠程調試每每可以迅速分析出緣由並解決,問題的解決速度脫穎而出。
什麼是Java遠程調試?
Java遠程調試的原理是兩個Java VM之間經過debug協議進行通訊,而後以達到遠程調試的目的。二者之間能夠經過socket進行通訊,被debug程序的Java虛擬機在啓動時開啓debug模式,啓動debug監聽程序。JDWP是Java Debug Wire Protocol的縮寫,它定義了調試器(debugger)和被調試的Java虛擬機(target vm)之間的通訊協議。
target vm中運行着咱們但願要調試的程序,它與通常運行的Java虛擬機沒有什麼區別,只是在啓動時加載了Agent JDWP從而具有了調試功能。而debugger就是咱們熟知的調試器,它向運行中的target vm發送命令來獲取 target vm運行時的狀態和控制Java程序的執行。Debugger和target vm分別在各自的進程中運行,他們之間的通訊協議就是JDWP。
clipboard.png
如何使用開發者中心進行在線調試?
若是你已經使用了開發者中心部署應用(上雲),那麼,能夠很是榮幸的告訴你,看完下面的步驟,只需幾秒鐘的配置,就能夠解救你於水火之中。
clipboard.png
拋開一切煩惱,掏出你的筆記本電腦,準備開始具體的配置吧。
操做步驟
應用屬性增長環境變量
CATALINA_OPTS = -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
如圖:
clipboard.png
應用增長調試端口,需和步驟1中的屬性address=8000一致,如8000
如圖:
clipboard.png
保存並重啓實例
clipboard.png
實例重啓完畢後,點擊須要遠程調試的實例控制檯
在實例控制檯中輸入echo $PORT0,$PORT1,輸出信息爲應用放開的端口對應該實例的數組,PORT0對應8080端口,PORT1對應實例的8000端口(即遠程調試使用的端口號)
clipboard.png
查看實例運行的主機
clipboard.png
配置開發工具IDE的遠程調試信息爲步驟6的IP地址和步驟5得到的端口
clipboard.png
至此,大功告成,你能夠輕鬆的進行問題排查了。此過程也能夠用於平常開發過程當中的在線定位問題,面對衆多的微服務,無需再煩惱了。數組

相關文章
相關標籤/搜索