2011-07-19 129 views
7

我正在運行從solr服務器獲取搜索結果的應用程序。但是當服務器沒有運行時,服務器沒有收到任何迴應。有什麼辦法可以發現我的服務器沒有運行,所以我可以給出適當的錯誤信息如何查找solr服務器是否正在運行

回答

0

您應該使用類似Nagios的東西來監視您的硬件狀態。 Nagios也有一個不錯的plugin for solr,可以幫助你。

+0

如果Nagios試圖在他的前端處理這個問題(錯誤消息),他不會真的幫到那麼多。 –

+0

以及他沒有指定太多,nagios是我能想到的最獨立的解決方案。 –

1

如果服務器沒有及時(SOLR)是,那麼你應該考慮代表它是下來,不管它是或不存在的錯誤消息響應(即其花費很長的時間,因爲它的過載) 。如果它需要永久加載它的用戶:)

大多數solr客戶端有一個超時和某種錯誤回調。如果超時發生,那麼你顯示錯誤。

如果你想知道服務器關閉很快,你可以把一個JSP放在solr上,它什麼都不做,只是打印出一條消息。然後做一個HTTP GET到JSP,如果它沒有很快出現,那麼服務器就關閉了。

+0

我認爲,從客戶端來看,超時方法比定期ping服務器更明智。 –

9

您可以定期ping您的服務器(例如http://localhost:8983/solr/admin/ping),並在錯誤的情況下,此消息傳遞到前端...

+0

:我應該如何ping通solr服務器通過代碼庫,以便我得到錯誤。 – Romi

+0

您的編程語言可能有一些工具可以定期運行(例如http://www.quartz-scheduler.org for Java ...)然後,只需發送一個GET請求到ping URL並處理HTTP狀態響應相應... –

+0

我知道這是一個較舊的答案,但它不再適用於最新的Solr。 – Marc

0

如果你有SolrServer對象,只需調用SolrServer.ping()如果不能則拋出異常建立連接。

相關問題