0

我正嘗試使用前端的負載平衡器使用Google Cloud創建一個自動縮放的solr實例組。我遇到的錯誤是我創建的健康檢查不會通過,無論我嘗試什麼。運行狀況檢查設置爲端口80(使用nginx將端口80轉發到8983的實例),路徑爲/ solr/< core_name>/admin/ping。使用Google Cloud上的Solr進行負載平衡

我可以從實例外部和實例(使用本地主機)內捲曲這條道路,我也得到:

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頁的唯一的事情,它說:「對於被認爲是成功的健康檢查,該實例必須返回代碼有效的HTTP響應200並在timeoutSec期間內正常關閉連接。「我知道Solr給出的代碼爲200,但是從curl命令中,它也保持連接活動而不是關閉它。那可能是錯誤嗎?如果是這樣,我怎麼能解決這個問題?

如果我將運行狀況檢查指向solr運行的端口8983而不是通過nginx進行路由,則連接不再使用keep-alive,但它也會將實例報告爲不健康。

任何幫助將不勝感激,

回答

0

想出了一個方法,使這項工作。我只是使用TCP負載平衡器而不是HTTP負載平衡器完成同樣的事情,並且它完美地工作。