bee*_*bee 3 amazon solr load-balancing
为负载均衡器运行状况检查提供的/ admin/ping solr的默认配置与Amazon elb负载均衡器运行状况检查很好地集成.
但是,由于我们在配置新节点时使用主从复制,因此solr启动并进行复制,但同时/ admin/ping返回成功,然后索引从master复制并且有文档.
我们希望节点只有在完成第一次复制并拥有文档后才能生效.我没有看到使用/ admin/ping PingRequestHandler执行此操作的任何方法 - 如果搜索成功,它总是返回成功,即使结果为零也是如此.
也无论如何在响应中使用elb运行状况检查配置匹配/不匹配预期文本.
任何想法如何实现这一目标?
为了扩展问题的本质,PingRequestHandler将始终返回成功,除非....
因此,我的建议是您配置PingRequestHandler处理程序以使用运行状况检查文件.然后,您可以在Solr系统上使用cron作业,其作业是检查文档是否存在,并相应地创建(或删除)运行状况检查文件.如果不存在运行状况检查文件,PingRequestHandler
则将抛出一个足够用于ELB的HTTP 503.
我使用的粗略算法......
http://localhost:8983/solr/select?q=*:*
numDocs > 0
那么touch /path/to/solr-enabled
rm /path/to/solr-enabled
(可选,取决于您的严格程度)可以在<admin>
块中配置运行状况检查文件,并且可以使用绝对路径或相对于已启动Solr的目录的文件名.
<admin>
<defaultQuery>solr</defaultQuery>
<pingQuery>q=*:*</pingQuery>
<healthcheck type="file">/path/to/solr-enabled</healthcheck>
</admin>
Run Code Online (Sandbox Code Playgroud)
让我知道这是如何工作的!我很想在Websolr上为read slave实现类似的东西.
归档时间: |
|
查看次数: |
1328 次 |
最近记录: |