1

我有 4 个 Solr 从站用于查询,还有一个 HAproxy 用于负载平衡连接。但是,有时 solr 服务器会停止响应请求(这是我应该解决的另一个问题,但这是另一个问题的主题......),但 java 进程没有关闭,因此 HAProxy 仍然认为服务器已启动并且正在运行,但 solr 从站不响应任何请求。我尝试了这个配置来检查 solr slave 的健康状况,但没有成功,因为 HAProxy 将所有服务器标记为关闭:

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

我也尝试将 GET 替换为 HEAD,但没有成功。

有什么想法吗 ?

谢谢

4

3 回答 3

2

在我的公司,基础设施人员使用查询而不是 ping。
考虑到您有一个名为 id 的 uniqueField (您很可能有),请执行以下操作:

/solr/select/?q=id:1234

只要您有一个名为 id 的字段并且 URL 正确,索引中是否不存在该 id 甚至都没有关系。即使 SOLR 不返回任何文档,它仍然会返回 200,而且该查询速度非常快。

于 2012-04-14T19:18:01.147 回答
0

我有同样的问题,我的健康检查总是返回 400(错误请求)。问题是 HTTP 1.1需要一个Host标头,而我没有提供。一旦我添加了主机头(如下所示),我的健康检查就开始工作了。

option httpchk GET /content/local/admin/ping\ HTTP/1.1\r\nHost:\ solr
于 2014-07-03T21:41:17.153 回答
-1

Try

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

HTTP/1.1 is the trouble maker.

于 2014-01-24T14:40:26.393 回答