【问题标题】:Load Balancing with Solr on Google Cloud在 Google Cloud 上使用 Solr 进行负载平衡
【发布时间】:2016-07-22 20:10:44
【问题描述】:

我正在尝试使用 Google Cloud 和前端的负载均衡器创建一个自动缩放的 solr 实例组。我遇到的错误是无论我尝试什么,我创建的健康检查都不会通过。健康检查设置到端口 80(使用 nginx 将端口 80 转发到 8983 的实例),路径为 /solr/ /admin/ping。

我可以从实例外部和实例内部(使用本地主机)卷曲这条路径,我得到:

curl --head localhost/solr/product/admin/ping
HTTP/1.1 200 OK
Server: nginx/1.6.2
Date: Fri, 22 Jul 2016 19:41:26 GMT
Content-Type: application/xml; charset=UTF-8
Content-Length: 0
Connection: keep-alive

谁能解释为什么健康检查没有通过?健康检查的详细信息是:

checkIntervalSec: 20
creationTimestamp: '2016-07-21T11:54:44.196-07:00'
description: ''
healthyThreshold: 1
host: ''
id: < id >
kind: compute#httpHealthCheck
name: < name >
port: 80
requestPath: /solr/product/admin/ping
selfLink: < path to healthcheck >
timeoutSec: 20
unhealthyThreshold: 3

我唯一能想到的是在Health Check 页面中,它说“要被视为成功的健康检查,实例必须返回带有代码 200 的有效 HTTP 响应并在 timeoutSec 时间内正常关闭连接。”我知道 Solr 给出的代码是 200,但是通过 curl 命令,它还保持连接处于活动状态而不是关闭它。那可能是错误吗?如果是这样,我该如何解决这个问题?

如果我将运行状况检查指向正在运行 solr 的端口 8983,而不是通过 nginx 路由它,则连接不再使用 keep-alive,但它也会将该实例报告为不健康。

任何帮助将不胜感激,

【问题讨论】:

    标签: curl nginx solr google-compute-engine google-cloud-platform


    【解决方案1】:

    想出了一种方法来完成这项工作。我只是使用 TCP 负载平衡器而不是 HTTP 负载平衡器做了完全相同的事情,并且效果很好。

    【讨论】:

      猜你喜欢
      • 2022-01-10
      • 2021-01-06
      • 1970-01-01
      • 1970-01-01
      • 2015-05-19
      • 1970-01-01
      • 2017-05-02
      • 2018-12-14
      • 1970-01-01
      相关资源
      最近更新 更多