2011-07-19 21 views
7

Używam aplikacji, która pobiera wyniki wyszukiwania z serwera solr. Ale gdy serwer nie działa, nie otrzymuję odpowiedzi od serwera. Czy jest jakiś sposób, że mogę stwierdzić, że mój serwer nie działa, więc mogę dać odpowiedni komunikat o błędzie w odniesieniu do niegoJak sprawdzić, czy serwer Solr jest uruchomiony czy nie

Odpowiedz

0

Powinieneś prawdopodobnie użyć czegoś w stylu Nagios do monitorowania stanu twojego sprzętu. Nagios ma również ładny plugin for solr, który może ci pomóc.

+0

Nagios nie pomoże tak bardzo, jeśli spróbuje sobie z tym poradzić w swoim interfejsie (komunikat o błędzie). –

+0

cóż, nie określił zbyt wiele, nagios jest najbardziej samodzielnym rozwiązaniem, jakie mogłem wymyślić. –

1

Jeśli serwer nie odpowiada w odpowiednim czasie (solr), należy rozważyć reprezentujący go w dół i przedstawić komunikat o błędzie, niezależnie od tego, czy jest on, czy nie (tj. Trwa długo, ponieważ jest przeciążony) . Jeśli trwa to wieczność, aby załadować jego dół do użytkownika :)

Większość klientów Solr ma limit czasu i wywołanie zwrotne błędu. Jeśli wystąpi przekroczenie limitu czasu, wyświetli się błąd.

Jeśli chcesz się bardzo szybko dowiedzieć, że serwer jest wyłączony, możesz umieścić JSP w Solr, który nic nie robi, tylko wydrukuje wiadomość. Następnie wykonaj HTTP GET na stronie JSP, a jeśli nie pojawi się bardzo szybko, serwer nie działa.

+0

Myślę, że od strony klienta, podejście timeout jest mądrzejsze niż okresowe pingowanie serwera. –

9

Można okresowo pingować serwer (np http://localhost:8983/solr/admin/ping) oraz w przypadku wystąpienia błędu przekazać tę wiadomość do frontend ...

+0

: w jaki sposób powinienem pingować serwer Solr poprzez bazę kodu, aby uzyskać błąd. – Romi

+0

Twój język programowania prawdopodobnie ma pewne narzędzie do planowania zadań, które mają być uruchamiane regularnie (np. Http://www.quartz-scheduler.org dla Java ...) Następnie wystarczy wysłać żądanie GET do adresu URL ping i przetworzyć Odpowiedź na stan HTTP odpowiednio ... –

+0

Wiem, że jest to starsza odpowiedź, ale nie dotyczy ona najnowszego Solr. – Marc

0

Jeśli masz SolrServer obiekt, wystarczy zadzwonić SolrServer.ping() zgłasza wyjątek, jeśli nie mogę nawiązać połączenie.

Powiązane problemy