我有 4 个 Solr 从机用于查询,还有一个 HAproxy 来负载平衡连接。但是,有时solr服务器停止应答请求(这是我应该解决的另一个问题,但这是另一个问题的主题......),但java进程没有停止,因此HAProxy仍然认为服务器已启动并正在运行,但solr从机不应答任何请求。我尝试使用此配置来检查 solr 从站的运行状况,但没有成功,因为 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
我也尝试过用 HEAD 替换 GET,但没有成功。
有什么想法吗?
谢谢
最佳答案
在我的公司,基础设施人员使用查询而不是 ping。
考虑到您有一个名为 id 的 uniqueField(您很可能拥有),请执行以下操作:
/solr/select/?q=id:1234
只要有一个名为 id 的字段并且 URL 正确,索引中是否不存在该 id 也没关系。即使 SOLR 不返回任何文档,它仍然会返回 200,而且该查询速度非常快。
关于java - 如何使用 HAProxy 检查 Solr 是否健康,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10090386/