欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Windows Docker 部署 SolrCloud的方法步驟

 更新時(shí)間:2024年10月13日 10:04:08   作者:菜鳥(niǎo)厚非  
本文主要介紹了Windows Docker 部署 SolrCloud的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

一、簡(jiǎn)介

Solr 集群是一個(gè)基于 Lucene 的高性能全文搜索服務(wù)器集群,它通過(guò)集成 ZooKeeper 來(lái)實(shí)現(xiàn)分布式索引和搜索功能。Solr 集群具備以下特點(diǎn):

  • 分布式索引與搜索:Solr 能夠?qū)⒋笏饕殖啥鄠€(gè)小索引,分布在多個(gè)節(jié)點(diǎn)上,提高索引和搜索的效率。
  • 高可用性和容錯(cuò)性:通過(guò) ZooKeeper 的協(xié)調(diào)管理,Solr 集群能夠自動(dòng)處理節(jié)點(diǎn)的故障轉(zhuǎn)移,確保服務(wù)的高可用性。
  • 自動(dòng)負(fù)載均衡:Solr 集群能夠自動(dòng)分配索引和查詢請(qǐng)求到各個(gè)節(jié)點(diǎn),實(shí)現(xiàn)負(fù)載均衡,提高整體性能。
  • 集中配置:Solr 集群的配置信息存儲(chǔ)在 ZooKeeper 中,便于集中管理和維護(hù)。
  • 可擴(kuò)展性:隨著數(shù)據(jù)量和查詢請(qǐng)求的增加,Solr 集群可以靈活地?cái)U(kuò)展節(jié)點(diǎn)數(shù)量,滿足不斷增長(zhǎng)的需求。

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

二、部署 ZK 集群

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

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

docker network create solr-zookeeper-net

2.1 ZK Node1

如果是第二次部署,配置已存在物理機(jī),可以忽略第一 和 第二兩步。第一步,使用下面命令啟動(dòng)一個(gè) 沒(méi)有配置映射的 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í)行下面三條命令,把容器內(nèi)的配置拷貝到物理機(jī),然后停止并刪除 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í)行下面命令,啟動(dòng)一個(gè)具有配置映射的 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

如果是第二次部署,配置已存在物理機(jī),可以忽略第一 和 第二兩步。第一步,使用下面命令啟動(dòng)一個(gè) 沒(méi)有配置映射的 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í)行下面三條命令,把容器內(nèi)的配置拷貝到物理機(jī),然后停止并刪除 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í)行下面命令,啟動(dòng)一個(gè)具有配置映射的 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

如果是第二次部署,配置已存在物理機(jī),可以忽略第一 和 第二兩步。第一步,使用下面命令啟動(dòng)一個(gè) 沒(méi)有配置映射的 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í)行下面三條命令,把容器內(nèi)的配置拷貝到物理機(jī),然后停止并刪除 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í)行下面命令,啟動(dòng)一個(gè)具有配置映射的 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 準(zhǔn)備目錄映射

啟動(dòng)一個(gè) solr 容器,這個(gè)容器僅供拷貝 solr 映射文件目錄使用。

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

執(zhí)行下面命令,使用 docker cp 命令將 solr 容器內(nèi)的程序目錄(/opt/solr/)和數(shù)據(jù)目錄(/var/solr/)拷貝到 solr1、solr2、solr3 對(duì)應(yīng)將要映射的物理機(jī)目錄下。然后停止并刪除臨時(shí)的 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í)行項(xiàng)目命令,即可啟動(dòng)一個(gè) 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í)行項(xiàng)目命令,即可啟動(dòng)一個(gè) 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í)行項(xiàng)目命令,即可啟動(dòng)一個(gè) 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 集群部署完成后,可以通過(guò) Docker Desktop 查看容器狀態(tài)。如下圖

在這里插入圖片描述

4.1 驗(yàn)證 Solr 集群

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

在這里插入圖片描述

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

在這里插入圖片描述

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

在這里插入圖片描述

五、SolrZK 狀態(tài)

隨便找一個(gè)節(jié)點(diǎn)查看 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

在這里插入圖片描述

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

在這里插入圖片描述

六、LB SolrCloud

這里通過(guò) Nginx 對(duì) Solr 集群進(jìn)行負(fù)載均衡,部署起來(lái)也相對(duì)較為簡(jiǎn)單。

6.1 準(zhǔn)備 nginx.conf

執(zhí)行下面命令,啟動(dòng)一個(gè)臨時(shí)的 Nginx 容器。然后在執(zhí)行 docker cp 將容器內(nèi)的配置文件拷貝到物理機(jī) 。最后執(zhí)行docker rm 刪除臨時(shí)的 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í)行下面命令,即可啟動(dòng)一個(gè) 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

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

6.3 配置 LB

打開(kāi)物理機(jī)的 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 端點(diǎn)

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

在這里插入圖片描述

打開(kāi)瀏覽器,使用 8982 端口進(jìn)行訪問(wèn) http://localhost:8982/solr/#/,可以正??吹?solr 集群的控制臺(tái)。

在這里插入圖片描述

在這里插入圖片描述

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

相關(guān)文章

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

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

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

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

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

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

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

    CentOS/RedHat 6.5 離線安裝Docker

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

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

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

    idea整合docker快速部署springboot應(yīng)用的詳細(xì)過(guò)程

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

    Docker教程之dockerfile構(gòu)建centos鏡像

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

    使用docker部署php服務(wù)的詳細(xì)步驟

    Docker鏡像是一個(gè)可移植的、自包含的單元,其中包含了運(yùn)行應(yīng)用程序所需的所有文件、配置和依賴項(xiàng),當(dāng)使用Docker部署PHP應(yīng)用程序時(shí),可以將PHP應(yīng)用程序和其依賴項(xiàng)打包到一個(gè)稱為Docker鏡像的獨(dú)立容器中,北本文介紹了使用docker部署php服務(wù)的詳細(xì)步驟,需要的朋友可以參考下
    2024-03-03
  • docker安裝使用xdebug的過(guò)程

    docker安裝使用xdebug的過(guò)程

    這篇文章主要介紹了docker安裝使用xdebug的過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09
  • 如何解決啟動(dòng)docker desktop報(bào)The network name cannot be found問(wèn)題

    如何解決啟動(dòng)docker desktop報(bào)The network name ca

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

最新評(píng)論