Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
<img src="//i.stack.imgur.com/RUiNP.png" height="16" width="18" alt="" class="sponsor tag img">elasticsearch 如何在docker compose中设置具有多个主节点的弹性搜索集群?_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Docker_Docker Compose - Fatal编程技术网 elasticsearch 如何在docker compose中设置具有多个主节点的弹性搜索集群?,elasticsearch,docker,docker-compose,elasticsearch,Docker,Docker Compose" /> elasticsearch 如何在docker compose中设置具有多个主节点的弹性搜索集群?,elasticsearch,docker,docker-compose,elasticsearch,Docker,Docker Compose" />

elasticsearch 如何在docker compose中设置具有多个主节点的弹性搜索集群?

elasticsearch 如何在docker compose中设置具有多个主节点的弹性搜索集群?,elasticsearch,docker,docker-compose,elasticsearch,Docker,Docker Compose,我让docker compose制作了一个包含1个主节点和2个数据节点的弹性搜索节点集群,如下所示,但我想知道如何扩展此集群以添加更多主节点,因为如果主节点出现故障,此设置仍然存在单点故障 更具体地说,第二个主节点如何与使用它的主机和应用程序交互?是否必须为第二个主节点绑定到主机上的其他端口?然后,应用程序是否必须通过负载平衡器来处理主NOE之一出现故障的情况 elasticsearch_master: image: elasticsearch:latest command: "elas

我让docker compose制作了一个包含1个主节点和2个数据节点的弹性搜索节点集群,如下所示,但我想知道如何扩展此集群以添加更多主节点,因为如果主节点出现故障,此设置仍然存在单点故障

更具体地说,第二个主节点如何与使用它的主机和应用程序交互?是否必须为第二个主节点绑定到主机上的其他端口?然后,应用程序是否必须通过负载平衡器来处理主NOE之一出现故障的情况

elasticsearch_master:
  image: elasticsearch:latest
  command: "elasticsearch -Des.cluster.name=vi -Des.node.master=true -Des.node.data=false"
  ports:
    - "9200:9200"
    - "9300:9300"

elasticsearch1:
  image: elasticsearch:latest
  command: "elasticsearch -Des.cluster.name=vi -Des.discovery.zen.ping.unicast.hosts=elasticsearch_master"
  links:
    - elasticsearch_master
  volumes:
    - "~/esdata:/usr/share/elasticsearch/data"

elasticsearch2:
  image: elasticsearch:latest
  command: "elasticsearch -Des.cluster.name=vi -Des.discovery.zen.ping.unicast.hosts=elasticsearch_master"
  links:
    - elasticsearch_master
  volumes:
    - "~/esdata:/usr/share/elasticsearch/data"

我知道我们的做法不同,但这里有一个代码示例对我很有用

services:
  esmaster1:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.3.2
    container_name: esmaster1
    environment:
      - cluster.name=es_cluster
      - bootstrap.memory_lock=true
      - http.cors.enabled=true
      - "http.cors.allow-origin=*"
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - "discovery.zen.ping.unicast.hosts=esmaster1,esmaster2"
      - "node.master=true"
      - "node.data=true"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata1:/home/ruan/workspace/docker/elasticsearch/data

  esmaster2:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.3.2
    container_name: esmaster2
    environment:
      - cluster.name=es_cluster
      - bootstrap.memory_lock=true
      - http.cors.enabled=true
      - "http.cors.allow-origin=*"
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - "discovery.zen.ping.unicast.hosts=esmaster1,esmaster2"
      - "node.master=true"
      - "node.data=true"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata2:/home/ruan/workspace/docker/elasticsearch/data

  elasticsearch1:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.3.2
    container_name: elasticsearch1
    environment:
      - cluster.name=es_cluster
      - bootstrap.memory_lock=true
      - http.cors.enabled=true
      - "http.cors.allow-origin=*"
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - "discovery.zen.ping.unicast.hosts=esmaster1,esmaster2"
      - "node.master=false"
      - "node.data=true"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata3:/home/ruan/workspace/docker/elasticsearch/data

  elasticsearch2:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.3.2
    container_name: elasticsearch2
    environment:
      - cluster.name=es_cluster
      - bootstrap.memory_lock=true
      - http.cors.enabled=true
      - "http.cors.allow-origin=*"
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - "discovery.zen.ping.unicast.hosts=esmaster1,esmaster2"
      - "node.master=false"
      - "node.data=true"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata4:/home/ruan/workspace/docker/elasticsearch/data

volumes:
  esdata1:
    driver: local
  esdata2:
    driver: local
  esdata3:
    driver: local
  esdata4:
    driver: local
如果主节点死亡,第二个节点将接管主节点并处理集群。如果您想使用Kibana(或任何其他可视化工具),还应该向集群添加其他Elasticsearch实例来处理该连接。此新实例不需要是主节点、数据节点或摄取节点


我希望这有帮助

你能找到这个问题的答案吗?