2012-04-10 12 views
1

私はqueringのために4つのSolrスレーブがあり、接続を負荷分散するためにはHAproxyがあります。しかし、solrサーバーが応答する要求を止めることがある(これは私が解決すべき別の問題ですが、別の質問の対象です...)、javaプロセスはダウンしないので、HAProxyはまだサーバーが稼働していると考えます実行中ですが、スレーブスレーブは要求に応答しません。健康は成功せず、SolrのスレーブをチェックするためにHAProxyがダウンしてすべてのサーバをマークしたので、私は、この設定を試してみました:HAProxyを使ってSolrを健全にチェックする方法

listen solr 0.0.0.0:10004 
    mode http 
    option httpchk GET /content/local/admin/ping HTTP/1.1 
    balance roundrobin 
    server solr-27 192.168.1.27:8088 check inter 2000 rise 2 fall 3 
    server solr-36 192.168.1.36:8088 check inter 2000 rise 2 fall 3 
    server solr-37 192.168.1.37:8088 check inter 2000 rise 2 fall 3 
    server solr-38 192.168.1.38:8088 check inter 2000 rise 2 fall 3 

私も成功せず、HEADのためのGETを交換しようとしています。

どのような考えですか?

ありがとう

答えて

2

私の会社では、インフラストラクチャ担当者がpingではなくクエリを使用していました。
、のような何かをするあなたはuniqueField idは(あなたが最も可能性が高い持っている)と呼ばれていることを考慮すると:

/solr/select/?q=id:1234 

そのIDがインデックスに存在しない場合はそれも、限り、あなたが持っているとして、問題ではありません。 idというフィールドとURLは正しいです。 SOLRがドキュメントを返さなくても、それは200を返すでしょう、そして、そのクエリは地獄のように速いです。

+0

これは素晴らしいアプローチだと思います。私は '' Host''ヘッダを追加する必要があるか、または私のヘルスチェックは400 Bad Requestで失敗しました。 –

-1

option httpchk GET /content/local/admin/ping HTTP/1.0 

HTTP/1.1は、トラブルメーカーで試してみてください。

0

私は私の健康チェックが常に400(不正なリクエスト)を返していました、同じ問題がありました。問題は、HTTP 1.1 があり、Hostヘッダーが必要で、私が提供していないということです。ホストヘッダーを追加すると(以下のように)、私のヘルスチェックが機能し始めました。

option httpchk GET /content/local/admin/ping\ HTTP/1.1\r\nHost:\ solr 
関連する問題