0

Ich versuche, eine Autoscaling-Gruppe von solr-Instanzen mit Google Cloud mit einem Load Balancer am Frontend zu erstellen. Der Fehler, den ich erfahre ist, dass der Gesundheitscheck, den ich erstellt habe, nie passiert, egal was ich versuche. Die Integritätsprüfung wird auf Port 80 gesetzt (die Instanzen, die nginx verwenden, um Port 80 an 8983 weiterzuleiten), und der Pfad lautet/solr/< Kernname>/admin/ping.Load Balancing mit Solr auf Google Cloud

kann ich diesen Weg cURL von außerhalb der Instanz und in der Instanz (mit localhost) und ich bekomme:

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 

Könnte jemand erklären, warum die Gesundheitsprüfung nicht besteht? Die Einzelheiten des Gesundheitscheck sind:

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 

Das einzige, was ich in der Health Check Seite denken kann, sie sagt: „Für eine Gesundheitsprüfung als erfolgreich erachtet werden kann, muss die Instanz eine gültige HTTP-Antwort mit Code zurück 200 und schließen Sie die Verbindung normalerweise innerhalb der TimeoutSec-Periode. " Ich weiß, dass Solr den Code 200 gibt, aber vom curl-Befehl hält er auch die Verbindung am Leben, anstatt sie zu schließen. Könnte das der Fehler sein? Wenn ja, wie könnte ich das umgehen?

Wenn ich die Integritätsprüfung auf Port 8983 zeigen, wo Solr ausgeführt wird, anstatt es über Nginx zu leiten, verwendet die Verbindung nicht mehr keep-alive, aber es meldet auch die Instanz als ungesund.

Jede Hilfe wäre sehr willkommen,

Antwort

0

einen Weg gefunden, diese Arbeit zu machen. Ich habe genau dasselbe mit einem TCP Load Balancer anstelle eines HTTP Load Balancers gemacht und es hat perfekt funktioniert.