亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Windows Docker 部署 SolrCloud的方法步驟

 更新時間:2024年10月13日 10:04:08   作者:菜鳥厚非  
本文主要介紹了Windows Docker 部署 SolrCloud的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

一、簡介

Solr 集群是一個基于 Lucene 的高性能全文搜索服務器集群,它通過集成 ZooKeeper 來實現分布式索引和搜索功能。Solr 集群具備以下特點:

  • 分布式索引與搜索:Solr 能夠將大索引分成多個小索引,分布在多個節(jié)點上,提高索引和搜索的效率。
  • 高可用性和容錯性:通過 ZooKeeper 的協(xié)調管理,Solr 集群能夠自動處理節(jié)點的故障轉移,確保服務的高可用性。
  • 自動負載均衡:Solr 集群能夠自動分配索引和查詢請求到各個節(jié)點,實現負載均衡,提高整體性能。
  • 集中配置:Solr 集群的配置信息存儲在 ZooKeeper 中,便于集中管理和維護。
  • 可擴展性:隨著數據量和查詢請求的增加,Solr 集群可以靈活地擴展節(jié)點數量,滿足不斷增長的需求。

此外,Solr 集群適用于需要大規(guī)模、高并發(fā)搜索服務的場景,如電商平臺、新聞媒體、在線教育等領域。

二、部署 ZK 集群

Solr 集群,一些功能依賴 ZooKeeper 進行實現。首先我們部署一下 ZooKeeper 集群,提供 Solr 使用。這里,使用的是 3.8.4 版本的 ZooKeeper 鏡像。

首先,使用下面一行命令,在 docker 中 創(chuàng)建一個名為 solr-zookeeper-net 的網絡。這會提供給 ZooKeeper 集群和 Solr 集群通訊使用,即:可以使用容器名,代替 IP 地址。

docker network create solr-zookeeper-net

2.1 ZK Node1

如果是第二次部署,配置已存在物理機,可以忽略第一 和 第二兩步。第一步,使用下面命令啟動一個 沒有配置映射的 ZooKeeper1 容器。

docker run -d `
-p 2181:2181 -p 2888:2888 -p 3888:3888 `
--restart always `
--name zookeeper1-3.8.4 `
--network=solr-zookeeper-net `
-e ZOO_MY_ID="1" `
-e ZOO_SERVERS="server.1=zookeeper1-3.8.4:2888:3888;2181 server.2=zookeeper2-3.8.4:2889:3889;2182 server.3=zookeeper3-3.8.4:2890:3890;2183" `
-v C:\ProgramDatas\Docker\Containers\zookeeper1-3.8.4\data:/data `
-v C:\ProgramDatas\Docker\Containers\zookeeper1-3.8.4\datalog:/datalog `
zookeeper:3.8.4

第二步,執(zhí)行下面三條命令,把容器內的配置拷貝到物理機,然后停止并刪除 ZooKeeper1 容器。

docker cp zookeeper1-3.8.4:/conf C:\ProgramDatas\Docker\Containers\zookeeper1-3.8.4\conf
docker stop zookeeper1-3.8.4
docker rm zookeeper1-3.8.4

第三步,執(zhí)行下面命令,啟動一個具有配置映射的 ZooKeeper1 容器。

docker run -d `
-p 2181:2181 -p 2888:2888 -p 3888:3888 `
--restart always `
--name zookeeper1-3.8.4 `
--network=solr-zookeeper-net `
-e ZOO_MY_ID="1" `
-e ZOO_SERVERS="server.1=zookeeper1-3.8.4:2888:3888;2181 server.2=zookeeper2-3.8.4:2889:3889;2182 server.3=zookeeper3-3.8.4:2890:3890;2183" `
-v C:\ProgramDatas\Docker\Containers\zookeeper1-3.8.4\data:/data `
-v C:\ProgramDatas\Docker\Containers\zookeeper1-3.8.4\datalog:/datalog `
-v C:\ProgramDatas\Docker\Containers\zookeeper1-3.8.4\conf:/conf `
zookeeper:3.8.4

2.2 ZK Node2

如果是第二次部署,配置已存在物理機,可以忽略第一 和 第二兩步。第一步,使用下面命令啟動一個 沒有配置映射的 ZooKeeper2 容器。

docker run -d -p 2182:2181 -p 2889:2888 -p 3889:3888 `
--restart always `
--name zookeeper2-3.8.4 `
--network=solr-zookeeper-net `
-e ZOO_MY_ID="2" -e ZOO_SERVERS="server.1=zookeeper1-3.8.4:2888:3888;2181 server.2=zookeeper2-3.8.4:2889:3889;2182 server.3=zookeeper3-3.8.4:2890:3890;2183" `
-v C:\ProgramDatas\Docker\Containers\zookeeper2-3.8.4\data:/data `
-v C:\ProgramDatas\Docker\Containers\zookeeper2-3.8.4\datalog:/datalog `
zookeeper:3.8.4

第二步,執(zhí)行下面三條命令,把容器內的配置拷貝到物理機,然后停止并刪除 ZooKeeper2 容器。

docker cp zookeeper2-3.8.4:/conf C:\ProgramDatas\Docker\Containers\zookeeper2-3.8.4\conf
docker stop zookeeper2-3.8.4
docker rm zookeeper2-3.8.4

第三步,執(zhí)行下面命令,啟動一個具有配置映射的 ZooKeeper2 容器。

docker run -d -p 2182:2181 -p 2889:2888 -p 3889:3888 `
--restart always `
--name zookeeper2-3.8.4 `
--network=solr-zookeeper-net `
-e ZOO_MY_ID="2" -e ZOO_SERVERS="server.1=zookeeper1-3.8.4:2888:3888;2181 server.2=zookeeper2-3.8.4:2889:3889;2182 server.3=zookeeper3-3.8.4:2890:3890;2183" `
-v C:\ProgramDatas\Docker\Containers\zookeeper2-3.8.4\data:/data `
-v C:\ProgramDatas\Docker\Containers\zookeeper2-3.8.4\datalog:/datalog `
-v C:\ProgramDatas\Docker\Containers\zookeeper2-3.8.4\conf:/conf `
zookeeper:3.8.4

2.3 ZK Node3

如果是第二次部署,配置已存在物理機,可以忽略第一 和 第二兩步。第一步,使用下面命令啟動一個 沒有配置映射的 ZooKeeper3 容器。

docker run -d `
-p 2813:2181 -p 2890:2888 -p 3890:3888 `
--restart always `
--network=solr-zookeeper-net `
-e ZOO_MY_ID="3" `
-e ZOO_SERVERS="server.1=zookeeper1-3.8.4:2888:3888;2181 server.2=zookeeper2-3.8.4:2889:3889;2182 server.3=zookeeper3-3.8.4:2890:3890;2183" `
-v C:\ProgramDatas\Docker\Containers\zookeeper3-3.8.4\data:/data `
-v C:\ProgramDatas\Docker\Containers\zookeeper3-3.8.4\datalog:/datalog `
--name zookeeper3-3.8.4 `
zookeeper:3.8.4

第二步,執(zhí)行下面三條命令,把容器內的配置拷貝到物理機,然后停止并刪除 ZooKeeper3 容器。

docker cp zookeeper3-3.8.4:/conf C:\ProgramDatas\Docker\Containers\zookeeper3-3.8.4\conf
docker stop zookeeper3-3.8.4
docker rm zookeeper3-3.8.4

第三步,執(zhí)行下面命令,啟動一個具有配置映射的 ZooKeeper3 容器。

docker run -d `
-p 2813:2181 -p 2890:2888 -p 3890:3888 `
--restart always `
--network=solr-zookeeper-net `
-e ZOO_MY_ID="3" `
-e ZOO_SERVERS="server.1=zookeeper1-3.8.4:2888:3888;2181 server.2=zookeeper2-3.8.4:2889:3889;2182 server.3=zookeeper3-3.8.4:2890:3890;2183" `
-v C:\ProgramDatas\Docker\Containers\zookeeper3-3.8.4\data:/data `
-v C:\ProgramDatas\Docker\Containers\zookeeper3-3.8.4\datalog:/datalog `
-v C:\ProgramDatas\Docker\Containers\zookeeper3-3.8.4\conf:/conf `
--name zookeeper3-3.8.4 `
zookeeper:3.8.4

三、Solr 集群

ZooKeeper 集群部署完成后,就可以部署 Solr 集群了。這里,使用的是 8.11.3 版本的 Solr 鏡像。

3.1 準備目錄映射

啟動一個 solr 容器,這個容器僅供拷貝 solr 映射文件目錄使用。

docker run -d -p 8983:8983 --name solr-8.11.3 -t solr:8.11.3

執(zhí)行下面命令,使用 docker cp 命令將 solr 容器內的程序目錄(/opt/solr/)和數據目錄(/var/solr/)拷貝到 solr1、solr2、solr3 對應將要映射的物理機目錄下。然后停止并刪除臨時的 solr 容器。

docker cp solr-8.11.3:/opt/solr/ C:\ProgramDatas\Docker\Containers\solr1-8.11.3\solr
docker cp solr-8.11.3:/var/solr/ C:\ProgramDatas\Docker\Containers\solr1-8.11.3\data
docker cp solr-8.11.3:/opt/solr/ C:\ProgramDatas\Docker\Containers\solr2-8.11.3\solr
docker cp solr-8.11.3:/var/solr/ C:\ProgramDatas\Docker\Containers\solr2-8.11.3\data
docker cp solr-8.11.3:/opt/solr/ C:\ProgramDatas\Docker\Containers\solr3-8.11.3\solr
docker cp solr-8.11.3:/var/solr/ C:\ProgramDatas\Docker\Containers\solr3-8.11.3\data
docker stop solr-8.11.3
docker rm solr-8.11.3

3.2 Solr 1

執(zhí)行項目命令,即可啟動一個 solr1 容器。

docker run -d -t -p 8983:8983 `
--network=solr-zookeeper-net `
--restart=always `
--name solr1-8.11.3 `
--privileged=true `
-v C:\ProgramDatas\Docker\Containers\solr1-8.11.3\solr:/opt/solr `
-v C:\ProgramDatas\Docker\Containers\solr1-8.11.3\data:/var/solr `
solr:8.11.3 bash -c '/opt/solr/bin/solr start -f -z zookeeper1-3.8.4:2181,zookeeper2-3.8.4:2182,zookeeper3-3.8.4:2183'

3.3 Solr 2

執(zhí)行項目命令,即可啟動一個 solr2 容器。

docker run -d -t -p 8984:8983 `
--network=solr-zookeeper-net `
--restart=always `
--name solr2-8.11.3 `
--privileged=true `
-v C:\ProgramDatas\Docker\Containers\solr2-8.11.3\solr:/opt/solr `
-v C:\ProgramDatas\Docker\Containers\solr2-8.11.3\data:/var/solr `
solr:8.11.3 bash -c '/opt/solr/bin/solr start -f -z zookeeper1-3.8.4:2181,zookeeper2-3.8.4:2182,zookeeper3-3.8.4:2183'

3.4 Solr 3

執(zhí)行項目命令,即可啟動一個 solr3 容器。

docker run -d -t -p 8985:8983 `
--network=solr-zookeeper-net `
--restart=always `
--name solr3-8.11.3 `
--privileged=true `
-v C:\ProgramDatas\Docker\Containers\solr3-8.11.3\solr:/opt/solr `
-v C:\ProgramDatas\Docker\Containers\solr3-8.11.3\data:/var/solr `
solr:8.11.3 bash -c '/opt/solr/bin/solr start -f -z zookeeper1-3.8.4:2181,zookeeper2-3.8.4:2182,zookeeper3-3.8.4:2183'

四、Solr ZK 容器狀態(tài)

ZooKeeper 集群和 Solr 集群部署完成后,可以通過 Docker Desktop 查看容器狀態(tài)。如下圖

在這里插入圖片描述

4.1 驗證 Solr 集群

如下所示,在某個節(jié)點中,可以看到 solr 集群中的全部 solr 節(jié)點,即代表集群部署成功。
http://localhost:8983/solr/#/~cloud

在這里插入圖片描述

http://localhost:8984/solr/#/~cloud

在這里插入圖片描述

http://localhost:8985/solr/#/~cloud

在這里插入圖片描述

五、SolrZK 狀態(tài)

隨便找一個節(jié)點查看 ZK Status(我這里查看的 solr3:http://localhost:8985/solr/#/~cloud?view=zkstatus),可以看到提示需要向 zk 加一行配置。

在這里插入圖片描述

找到 zk1、zk2、zk3 的 zoo.cfg 文件,分別加入下面一行配置。然后重啟 zk1、zk2、zk3 的容器即可生效。

4lw.commands.whitelist=mntr,conf,ruok

在這里插入圖片描述

重啟完成后,打開 solr admin 面板,可以看到此時 zk 集群的狀態(tài)可以在 solr 控制臺中正常展示。

在這里插入圖片描述

六、LB SolrCloud

這里通過 Nginx 對 Solr 集群進行負載均衡,部署起來也相對較為簡單。

6.1 準備 nginx.conf

執(zhí)行下面命令,啟動一個臨時的 Nginx 容器。然后在執(zhí)行 docker cp 將容器內的配置文件拷貝到物理機 。最后執(zhí)行docker rm 刪除臨時的 Nginx 容器。

docker run -d `
-p 8080:80 `
--name nginx-1.25.4 `
nginx:1.25.4
docker cp nginx-1.25.4:/etc/nginx/nginx.conf C:\ProgramDatas\Docker\Containers\nginx-1.25.4\nginx.conf
docker rm -f nginx-1.25.4

6.2 部署 Nginx

執(zhí)行下面命令,即可啟動一個 Nginx 容器。

docker run -d `
-p 8080:80 `
-p 8982:8982 `
--network=solr-zookeeper-net `
--restart always `
--name nginx-1.25.4 `
-v C:\ProgramDatas\Docker\Containers\nginx-1.25.4\html:/usr/share/nginx/html `
-v C:\ProgramDatas\Docker\Containers\nginx-1.25.4\nginx.conf:/etc/nginx/nginx.conf `
-v C:\ProgramDatas\Docker\Containers\nginx-1.25.4\cache:/var/cache/nginx `
-v C:\ProgramDatas\Docker\Containers\nginx-1.25.4\pid:/var/run `
nginx:1.25.4

-參數 --restart always 在容器退出時總是重啟容器。
-參數 -v C:\ProgramDatas\Docker\Containers\nginx-1.25.4\html:/usr/share/nginx/html 映射 Nginx 默認路徑到物理機。
-參數 -v C:\ProgramDatas\Docker\Containers\nginx-1.25.4\nginx.conf:/etc/nginx/nginx.conf 映射 Nginx 容器內配置文件。
-參數 -v C:\ProgramDatas\Docker\Containers\nginx-1.25.4\cache:/var/cache/nginx 映射 Nginx 緩存目錄到物理機。
-參數 -v C:\ProgramDatas\Docker\Containers\nginx-1.25.4\pid:/var/run 映射 Nginx 的 PID 文件到物理機。

6.3 配置 LB

打開物理機的 nginx.conf 配置文件,添加 upstream 和 server 模塊,然后重啟 nginx 容器即可生效。

http {
    upstream solrcloud {
        server solr1-8.11.3:8983;
        server solr2-8.11.3:8984;
		server solr3-8.11.3:8985;
    }
    server {
        listen 8982;
        location / {
            proxy_pass http://solrcloud;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
}

6.4 LB 端點

可看到,我們配置的 LB 是 8982 端口。

在這里插入圖片描述

打開瀏覽器,使用 8982 端口進行訪問 http://localhost:8982/solr/#/,可以正常看到 solr 集群的控制臺。

在這里插入圖片描述

在這里插入圖片描述

到此這篇關于Windows Docker 部署 SolrCloud的方法步驟的文章就介紹到這了,更多相關Docker 部署 SolrCloud內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家! 

相關文章

  • 如何將本地構建好的docker鏡像發(fā)布到dockerhub

    如何將本地構建好的docker鏡像發(fā)布到dockerhub

    這篇文章主要介紹了如何將本地構建好的docker鏡像發(fā)布到dockerhub,文中通過圖文教程介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05
  • 使用Docker Compose創(chuàng)建LAMP環(huán)境的詳細步驟

    使用Docker Compose創(chuàng)建LAMP環(huán)境的詳細步驟

    現如今,通過 Docker 容器化部署環(huán)境已經逐漸成為主流,特別是在部署像 LAMP 這樣的復雜環(huán)境時,本教程旨在帶您完成使用 Docker-Compose 建立 LAMP 環(huán)境的整個過程,同時還包括定制 PHP 環(huán)境的步驟,需要的朋友可以參考下
    2024-12-12
  • Docker部署Nginx設置環(huán)境變量的實現步驟

    Docker部署Nginx設置環(huán)境變量的實現步驟

    本文主要介紹了Docker部署Nginx設置環(huán)境變量的實現步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • CentOS/RedHat 6.5 離線安裝Docker

    CentOS/RedHat 6.5 離線安裝Docker

    這篇文章主要介紹了CentOS/RedHat 6.5 離線安裝Docker的相關資料,需要的朋友可以參考下
    2017-01-01
  • Docker中的文件/文件夾的掛載映射方式

    Docker中的文件/文件夾的掛載映射方式

    通過命令行在宿主機與Docker容器間掛載和映射文件夾,實現數據共享,具體步驟包括:在宿主機創(chuàng)建文件夾并使用Docker命令將其掛載到容器指定位置,需注意容器名稱與ID的使用差異
    2024-11-11
  • idea整合docker快速部署springboot應用的詳細過程

    idea整合docker快速部署springboot應用的詳細過程

    這篇文章主要介紹了idea整合docker快速部署springboot應用,文中給大家提到關于安裝docker步驟,idea連接遠程docker的方法,需要的朋友可以參考下
    2021-10-10
  • Docker教程之dockerfile構建centos鏡像

    Docker教程之dockerfile構建centos鏡像

    這篇文章主要介紹了Docker教程之dockerfile構建centos鏡像的相關資料,需要的朋友可以參考下
    2022-11-11
  • 使用docker部署php服務的詳細步驟

    使用docker部署php服務的詳細步驟

    Docker鏡像是一個可移植的、自包含的單元,其中包含了運行應用程序所需的所有文件、配置和依賴項,當使用Docker部署PHP應用程序時,可以將PHP應用程序和其依賴項打包到一個稱為Docker鏡像的獨立容器中,北本文介紹了使用docker部署php服務的詳細步驟,需要的朋友可以參考下
    2024-03-03
  • docker安裝使用xdebug的過程

    docker安裝使用xdebug的過程

    這篇文章主要介紹了docker安裝使用xdebug的過程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • 如何解決啟動docker desktop報The network name cannot be found問題

    如何解決啟動docker desktop報The network name ca

    在使用Docker Desktop時,可能遇到"The network name cannot be found"的錯誤,解決這個問題的方法是打開管理員權限的終端,執(zhí)行重啟Docker Desktop的相關命令,如果遇到虛擬化未開啟的提示,需要執(zhí)行“bcdedit /set hypervisorlaunchtype auto”
    2024-10-10

最新評論