中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何檢測Tomcat的狀態是UP還是DOWN

發布時間:2021-12-14 17:01:32 來源:億速云 閱讀:159 作者:柒染 欄目:大數據

這篇文章給大家介紹如何檢測Tomcat的狀態是UP還是DOWN,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

做為工程師,有些時候,總會遇到部署的 Web 應用沒有響應,或者狀態不對等各類問題。 

我們在查看進程是否存在時,并沒有直接查看對應 Web 應用的方式, 一般都是查看 Tomcat 的對應 Java 進程是否在。 如果應用沒有響應另外再觀察線程棧。

那這里有一個問題,Tomcat 進程在的時候,我們怎么來看 Tomcat的狀態呢?

畢竟做為一個Java 應用,只要一啟動的時候就會創建進程。這個并不能做為 Tomcat 在工作的真實依據。 此時有什么辦法來判斷當前 Tomcat 的工作狀態呢?

一般在做集群內容器的心跳狀態檢測時也會遇到同樣的問題。

這種情況如果 Tomcat 部署了ROOT應用,可以通過訪問其指定的頁面來判斷請求是否可達,來確認 Tomcat 的狀態。

另外一種方式是通過連接 Tomcat 的 MBeanServer 來確認其狀態。一般情況Tomcat 宕掉了 MBeanServer也會連接失敗。

前面的文章我們介紹過 JMX 連接到 Tomcat 提供的 MBeanServer 上(你了解JMX在Tomcat的應用嗎?),可以執行一系列的容器相關組件的操作,甚至像啟動停止 Connector 這些看似「危險」的操作。

當然要通過 JMX URL 連接到  Tomcat MBeanServer 上,是需要在啟動腳本中配置參數啟用。 除此之外,也可以用類似 JConsole 連接到各個 JVM 進程的方式,是通過 attach 到 VirtualMachine 后獲取連接的。這個方式我們后面再寫文章單獨說。

在在官方的FQA里,還提到了一種實現檢測狀態的方式。

熟悉 Tomcat 配置的朋友都知道, 在一臺機器上部署多個 Tomcat 時,經常會有端口沖突的問題, 這是因為在 server.xml 里會配置多個端口供實例使用。  除了 Connector 監聽的端口外,還有一個 Server 組件使用的端口,默認是8005。 多個實例之間,除 Connector 端口外,這個SHUTDOWN 端口也是沖突的。 

這里要實現檢測 Tomcat 狀態就是通過連接這個「端口」來實現。

說到端口,大家第一印象一定是 Socket ,這里正是連接到這個端口對應的ServerSocket上,如果可以正常連接,表示 Tomcat 處于運行狀態。 連接不上Socket 自然是 Tomcat 不可用了。 

該端口除了獲取狀態外,還可以干啥呢? 還可以停止 Tomcat 進程,畢竟該端口可是號稱SHUTDOWN端口啊。

實現起來也比較簡單,在 Tomcat 的  SHUTDOWN端口旁邊,還有一個屬性,做為一個token,用于識別來關閉 Tomcat 的命令。當 Server 接收到帶有這個token 的命令時,退出實例。

完整的實現,需要根據指定的 Tomcat 安裝目錄,解析配置文件,獲取 SHUTDOWN 端口,以及對應的token,連接對應的 ServerSocket,獲取狀態,執行命令。 

關于如何檢測Tomcat的狀態是UP還是DOWN就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

嘉鱼县| 衡水市| 杨浦区| 密云县| 云和县| 深泽县| 宜君县| 营山县| 涟水县| 华坪县| 如东县| 长沙市| 新和县| 中超| 兴国县| 柳林县| 洞口县| 马龙县| 页游| 饶平县| 韶山市| 汶上县| 英德市| 清镇市| 扶风县| 新安县| 辽源市| 新宾| 浦县| 宿州市| 酉阳| 洪雅县| 宜阳县| 山东| 中方县| 土默特左旗| 桃江县| 武平县| 亚东县| 建湖县| 福泉市|