2014-03-01 1 views
5

Ich benutze Elasticsearch und Symfony2 in einem System über FOSAlasticaBundle.FOSlaslasticaBundle für Symfony2. Wie konfiguriert man die Verbindung zu einem Cluster?

Während ich nur einen Server mit, es war ok, die clients Config wie folgt zu konfigurieren: https://github.com/FriendsOfSymfony/FOSElasticaBundle#basic-configuration

fos_elastica: 
    clients: 
     default: { host: localhost, port: 9200 } 

Aber wenn es zu einem Cluster kommt, ich habe in gewisser Weise zu konfigurieren versucht, aber es nicht funktioniert, wie folgt aus:

fos_elastica: 
    clients: 
     default: [{host: localhost, port: 9200},{host: localhost, port: 9201}] 

Und:

fos_elastica: 
    clients: 
     default: 
      - { host: localhost, port: 9200 } 
      - { host: localhost, port: 9201 } 

Ich weiß, dass FOSelasticaBundle die 10 verwendet, und diese Bibliothek verbindet sich zu Clustern mit arrays of parameters, deshalb habe ich diese Ansätze oben versucht.

Weiß jemand, wie man sich verbindet, um FOSelasticaBundle zu konfigurieren, um sich mit irgendeinem Cluster zu verbinden?

Vielen Dank im Voraus.

Antwort

4

Sie brauchen nicht wirklich alle Ihre Knoten aufzulisten, da ElasticSearch Load Balance der Cluster. Dies ist jedoch immer noch möglich (z. B. wenn der Knoten, mit dem Sie eine Verbindung herstellen, offline geschaltet wird). Denken Sie daran, dass es nur ein einfaches Round Robin ist.

Dies ist, wie Sie es tun:

fos_elastica: 
    clients: 
     default: 
      servers: 
       - { host: localhost, port: 9200 } 
       - { host: localhost, port: 9201 } 
+0

Dank r1pp3rj4ck, das ist genau das, was ich brauche. Ich arbeite an einer Hochverfügbarkeitsumgebung, deshalb muss ich mehr als einen Knoten des Clusters übergeben. Ich möchte Sie fragen, wo haben Sie diese Konfiguration gefunden? –

+1

hier in diesem Patch: https://github.com/FriendsOfSymfony/FOSlaslasticaBundle/pull/191/files :) Ich denke, ich werde eine Docs PR: D senden – r1pp3rj4ck

Verwandte Themen