如何使用docker-compose运行SolrCloud

Ron*_*Lee 1 solr solrcloud docker apache-zookeeper

请帮助我的docker-compose文件。现在,我在docker文件中使用Solr,但是我需要将其更改为SolrCloud。我需要2个Solr实例,一个内部Zookeeper和docker(本地)。这是docker-compose我所做的文件的示例:

version: "3"

services:
  mongo:
    image: mongo:latest
    container_name: mongo
    hostname: mongo
    networks:
      - gsec
    ports:
      - 27018:27017    

  sqlserver:
    image: microsoft/mssql-server-linux:latest
    hostname: sqlserver
    container_name: sqlserver
    environment:
      SA_PASSWORD: "#Password123!"
      ACCEPT_EULA: "Y"
    networks:
      - gsec
    ports:
      - 1403:1433
  solr:
    image: solr
    container_name: solr    
    ports:
     - "8983:8983"
    networks:
      - gsec 
    volumes:
      - data:/opt/solr/server/solr/mycores
    entrypoint:
      - docker-entrypoint.sh
      - solr-precreate
      - mycore
volumes:
  data:

networks:
      gsec:
        driver: bridge
Run Code Online (Sandbox Code Playgroud)

在此先感谢您。

fre*_*dev 5

Solr docker实例具有嵌入的zookeeper服务器。您只需使用正确的参数启动Solr,然后9983:9983在docker-compose文件中添加zookeeper端口:

  solr:
    image: solr
    container_name: solr    
    ports:
     - "9983:9983"
     - "8983:8983"
    networks:
      - gsec 
    volumes:
      - data:/opt/solr/server/solr/mycores
    entrypoint:
      - docker-entrypoint.sh
      - solr
      - start
      - -c
      - -f
Run Code Online (Sandbox Code Playgroud)

SolrCloud基本上是一个Solr集群,其中Zookeeper用于协调和配置集群。

通常,将SolrCloud与Docker结合使用是因为您正在学习它的工作方式,或者是因为您正在准备将应用程序(本地?)部署在更大的环境中。

另一方面,如果您没有分布式配置,即让Solr和Zookeeper运行在不同的节点上,那么运行SolrCloud并没有多大意义。

当您每秒进行数百甚至数千次搜索并收集数百万甚至数十亿个文档时,SolrCloud是您需要的一种群集。

您的集群必须水平扩展。