這篇文章給大家介紹如何檢測Tomcat的狀態是UP還是DOWN,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
創新互聯專注為客戶提供全方位的互聯網綜合服務,包含不限于網站建設、成都網站制作、簡陽網絡推廣、小程序制作、簡陽網絡營銷、簡陽企業策劃、簡陽品牌公關、搜索引擎seo、人物專訪、企業宣傳片、企業代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創新互聯為所有大學生創業者提供簡陽建站搭建服務,24小時服務熱線:13518219792,官方網址:vcdvsql.cn
做為工程師,有些時候,總會遇到部署的 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就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
新聞標題:如何檢測Tomcat的狀態是UP還是DOWN
標題來源:http://vcdvsql.cn/article38/pehspp.html
成都網站建設公司_創新互聯,為您提供虛擬主機、企業網站制作、營銷型網站建設、網站設計、全網營銷推廣、網站排名
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯