java - 如何使用 HAProxy 检查 Solr 是否健康

标签 java solr load-balancing high-availability haproxy

我有 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/

相关文章:

java - 使用 JCufft 进行实数到复数 FFT

java - 在最大尝试次数后,Testng RetryListener 未使测试用例失败

solr - 同一个 Solr Core 中的多个索引..?

tcp - 银行 atm tcp 消息负载平衡和路由使用 java nio/netty 和 activemq

java - 组播的替代方案

java - PDFBox 在 Print() 命令处卡住

solr - 如何在solr中的固定位置对某些项目实现自定义排序顺序?

java - 如何在Solr上存储java对象

tomcat - apache mod_proxy url 不起作用,除非/附加

azure - 如何在Azure上进行负载平衡/端口转发?