ドッキングウィンドウでelasticsearchの生産のセットアップは次のようになり、公式websiteDocker:2つのelasticsearchコンテナはどのように連携して動作していますか?
version: '2'
services:
elasticsearch1:
image: docker.elastic.co/elasticsearch/elasticsearch:5.5.2
container_name: elasticsearch1
environment:
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
mem_limit: 1g
volumes:
- esdata1:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- esnet
elasticsearch2:
image: docker.elastic.co/elasticsearch/elasticsearch:5.5.2
environment:
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- "discovery.zen.ping.unicast.hosts=elasticsearch1"
ulimits:
memlock:
soft: -1
hard: -1
mem_limit: 1g
volumes:
- esdata2:/usr/share/elasticsearch/data
networks:
- esnet
volumes:
esdata1:
driver: local
esdata2:
driver: local
networks:
esnet:
応じElasticsearch1が露出され、それはまた、ドッキングウィンドウネットワークによってElasticsearch2に接続されているが、彼らは自分のストレージを持っています。 今は私の質問です。この設定はどのように機能していますか? ES2(elasticsearch2)はES1(elasticsearch1)がダウンするまで何もしませんか、それともすべてを複製していますか?
私はいつも私はlocalhost:9200
と接続しますので、私はいつもES1にアクセスします。私は、ES2がES2に関してこの情報を使って何をしているのか分かりません。私は(logstashがelasticsearch1とリンクされている)ドッカネットワーク上で内部にそれを維持
output {
elasticsearch { hosts => ["elasticsearch1:9200"] }
xxx
}
が、私は知らない。
別のケースでは、私は私の出力先を定義する必要が私のlogstash.confの内側にあります私がelasticsearch2を定義しなければならない場合は?または今起こっていること。
elasticsearch1とelasticsearch2はどのように連携して動作していますか?
ありがとう、私はそれを読んだ。だから私が理解すれば、ESの「クラスタ」内にある2つのノードのうちの1つで、すべてのコマンドを実行しても問題ありません。私はまだデータの取り扱いについての非常に明確な説明が表示されませんが、私はレプリカという言葉を見ましたか? ES1にログを送信すると、ES2のデータボリューム内にもログが保存されますか? – DenCowboy
これはボンネットの下にあります。事実、単一の大きなインスタンスであるため、インスタンスのいずれかに到達することができます。データがどのように拡散されるかは、設定によって異なりますが、クライアントにとっては何とか透過的です。 – whites11
理想的な状況では、ESの上にロードバランサのようなものがあるので、私の設定で1つのURLに触れることができ、ロードバランサはそれを私のESの1つにルーティングします。 1つがダウンしている場合は、もう1つを使用します – DenCowboy