最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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 集群,一些功能依賴(lài) 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)文章

  • Docker+K8s集成部署的實(shí)戰(zhàn)

    Docker+K8s集成部署的實(shí)戰(zhàn)

    本文詳細(xì)介紹了Docker與Kubernetes在企業(yè)級(jí)生產(chǎn)環(huán)境中的集成部署實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2026-05-05
  • docker rm -f 容器id 無(wú)效的問(wèn)題解決

    docker rm -f 容器id 無(wú)效的問(wèn)題解決

    當(dāng)遇到“Error response from daemon: cannot stop container: d208b8055fd0: permission denied”錯(cuò)誤,表示缺乏停止Docker容器的權(quán)限,本文就來(lái)介紹一下如何解決,感興趣的可以了解一下
    2024-09-09
  • Docker學(xué)習(xí)筆記之Docker端口映射

    Docker學(xué)習(xí)筆記之Docker端口映射

    本篇文章主要介紹了Docker學(xué)習(xí)筆記之Docker端口映射,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07
  • DOCKERFILE學(xué)習(xí)及使用注意事項(xiàng)

    DOCKERFILE學(xué)習(xí)及使用注意事項(xiàng)

    Dockerfile 由一行行命令語(yǔ)句組成,并且支持以 # 開(kāi)頭的注釋行。一般的,Dockerfile分為四部分:基礎(chǔ)鏡像信息、維護(hù)者信息、鏡像操作指令、容器啟動(dòng)時(shí)執(zhí)行指令
    2017-02-02
  • Docker刪除鏡像詳細(xì)步驟和注意事項(xiàng)

    Docker刪除鏡像詳細(xì)步驟和注意事項(xiàng)

    Docker刪除鏡像是一個(gè)常見(jiàn)的操作,主要用于清理系統(tǒng)中不再需要的鏡像,以釋放存儲(chǔ)空間,刪除鏡像可以通過(guò)docker?rmi命令實(shí)現(xiàn),文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-10-10
  • docker部署高斯數(shù)據(jù)庫(kù)的詳細(xì)步驟

    docker部署高斯數(shù)據(jù)庫(kù)的詳細(xì)步驟

    文章詳細(xì)介紹了如何在Docker中部署高斯數(shù)據(jù)庫(kù)(openGauss),包括安裝Docker、拉取鏡像、運(yùn)行容器、設(shè)置環(huán)境變量和掛載數(shù)據(jù)卷等步驟,還提供了連接和配置遠(yuǎn)程連接的指導(dǎo),感興趣的朋友一起看看吧
    2024-12-12
  • Docker構(gòu)建Jar鏡像的方法實(shí)現(xiàn)

    Docker構(gòu)建Jar鏡像的方法實(shí)現(xiàn)

    本文主要介紹了Docker構(gòu)建Jar鏡像的方法實(shí)現(xiàn),主要包括編寫(xiě)Dockerfile、構(gòu)建鏡像、測(cè)試鏡像等操作,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • Docker Machine是什么?

    Docker Machine是什么?

    Docker Machine是什么?這篇文章主要介紹了Docker官方提供的一個(gè)工具Docker Machine,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Docker容器訪問(wèn)宿主機(jī)網(wǎng)絡(luò)的方法

    Docker容器訪問(wèn)宿主機(jī)網(wǎng)絡(luò)的方法

    這篇文章主要介紹了Docker容器訪問(wèn)宿主機(jī)網(wǎng)絡(luò)的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • docker容器因報(bào)錯(cuò)無(wú)法啟動(dòng)問(wèn)題的檢查及修復(fù)容器錯(cuò)誤并重啟

    docker容器因報(bào)錯(cuò)無(wú)法啟動(dòng)問(wèn)題的檢查及修復(fù)容器錯(cuò)誤并重啟

    隨著容器技術(shù)的發(fā)展,現(xiàn)在很多的應(yīng)用程序系統(tǒng)都會(huì)選擇使用docker容器進(jìn)行部署,下面這篇文章主要給大家介紹了關(guān)于docker容器因報(bào)錯(cuò)無(wú)法啟動(dòng)問(wèn)題的檢查及修復(fù)容器錯(cuò)誤并重啟的相關(guān)資料,需要的朋友可以參考下
    2023-03-03

最新評(píng)論

贵港市| 师宗县| 黎城县| 桃园县| 安徽省| 北宁市| 天门市| 玉树县| 松原市| 泗水县| 化州市| 遵义市| 昆明市| 塘沽区| 湾仔区| 榆社县| 龙泉市| 商水县| 丹巴县| 井陉县| 错那县| 遵义市| 团风县| 吉林省| 沂南县| 临江市| 观塘区| 古蔺县| 苍南县| 沙河市| 呼图壁县| 和平区| 潢川县| 林西县| 凤翔县| 北川| 县级市| 钟祥市| 嘉义市| 关岭| 永州市|