【发布时间】:2013-10-08 13:15:47
【问题描述】:
如何配置健康检查?
什么是 Solr 4 中的 Healthcheck 文件?以及它是如何使用的?我正在配置 Solr Cloud 并找到了对这个文件的引用,该文件应该在那里,但没有找到任何示例配置。
非常感谢任何有关如何使用它的链接/文章/示例。
【问题讨论】:
如何配置健康检查?
什么是 Solr 4 中的 Healthcheck 文件?以及它是如何使用的?我正在配置 Solr Cloud 并找到了对这个文件的引用,该文件应该在那里,但没有找到任何示例配置。
非常感谢任何有关如何使用它的链接/文章/示例。
【问题讨论】:
概述
这里很好地解释了 PingRequestHandler/HealthCheck 来自PingRequestHandler Documentation
用于向负载均衡器报告 SolrCore 运行状况的 Ping 请求处理程序。
此处理程序旨在用作 HTTP 负载平衡器的端点,以在检查 Solr 服务器的“健康”或“启动状态”时使用。
在最简单的形式中,PingRequestHandler 应该配置一些默认值来指示应该执行的请求。如果请求成功,那么 PingRequestHandler 将返回一个简单的“OK”状态。如果请求失败,则 PingRequestHandler 将返回相应的 HTTP 错误代码。客户端(例如负载平衡器)可以配置为轮询 PingRequestHandler 监控这些类型的响应(或简单的连接失败),以了解 Solr 服务器是否存在问题。
可用的更高级选项是使用“healthcheckFile”配置处理程序,可用于启用/禁用 PingRequestHandler。 此运行状况检查文件功能可用作向某些负载均衡器指示服务器应“从轮换中移除”以进行维护、升级或您可能希望的任何原因的一种方式。
配置
来自Solr Reference Guide - Major Changes from Solr 3 to Solr 4
PingRequestHandler 不再在 solrconfig.xml 的(旧版)部分中查找选项。如果您想利用此功能,请直接在 PingRequestHandler 上配置 healthcheckFile 初始化参数。作为此更改的一部分,已修复相对文件路径以针对数据目录进行解析。示例 solrconfig.xml 包含此配置的示例。
这是来自sample solrconfig.xml的相关部分:
<!-- ping/healthcheck -->
<requestHandler name="/admin/ping" class="solr.PingRequestHandler">
<lst name="invariants">
<str name="q">solrpingquery</str>
</lst>
<lst name="defaults">
<str name="echoParams">all</str>
</lst>
<!-- An optional feature of the PingRequestHandler is to configure the
handler with a "healthcheckFile" which can be used to enable/disable
the PingRequestHandler.
relative paths are resolved against the data dir
-->
<!-- <str name="healthcheckFile">server-enabled.txt</str> -->
</requestHandler>
示例用法
最好将示例用法描述为上述概述部分中 PingRequestHandler 文档下的高级选项(最后一段)。我在他们描述的场景中使用了这个设置,我们有两台 Solr 服务器要进行负载平衡。通过启用 healthcheckFile,我们可以从 Solr 管理页面控制 Solr 服务器是否响应 ping 请求。当文件存在时,它将响应 ping 请求,当文件不存在时,它将不响应。在运行状况检查部分下的核心概述页面上将有一个启用/禁用 Ping 按钮。请看下面的截图:
【讨论】: