Docker中部署Redis集群與部署微服務項目的詳細過程

一、使用Docker部署的好處
Docker的好處在于:在不同實例上運行相同的容器
Docker的五大優(yōu)點: 持續(xù)部署與測試、多云服務平臺支持、環(huán)境標準化和版本控制、隔離、安全
二、Docker 與 Kubernetes 對比
Docker適用于較為小的應用,并發(fā)量不大的情況下、微服務為超過10個,建議適用Docker部署,這樣也省資源、可減少開發(fā)成本。
K8S適用于大集群的情況,高并發(fā),并且微服務超過了10個,同時性能也是非常好的,性能好的前提下,開發(fā)成本也增加了不少!
三、Redis集群部署實戰(zhàn)
下面部署如圖所示三主三從的Redis集群

停掉所有的容器,刪除全部記錄
docker rm $(docker ps -a -q)
創(chuàng)建自定義網(wǎng)絡redis
docker network create redis --subnet 172.38.0.0/16

通過腳本創(chuàng)建六個redis的基本信息
for port in $(seq 1 6); \
do \
mkdir -p /mydata/redis/node-${port}/conf
touch /mydata/redis/node-${port}/conf/redis.conf
cat << EOF >/mydata/redis/node-${port}/conf/redis.conf
port 6379
bind 0.0.0.0
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 172.38.0.1${port}
cluster-announce-port 6379
cluster-announce-bus-port 16379
appendonly yes
EOF
done

啟動6個redis容器,并進行數(shù)據(jù)掛載
# 通過腳本一次性啟動
for port in $(seq 1 6); \
do
docker run -p 637${port}:6379 -p 1637${port}:16379 --name redis-${port} \
-v /mydata/redis/node-${port}/data:/data \
-v /mydata/redis/node-${port}/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.1${port} redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf; \
done

進入redis-1中設置創(chuàng)建集群
# 進入redis-1 docker exec -it redis-1 /bin/sh # 創(chuàng)建集群 redis-cli --cluster create 172.38.0.11:6379 172.38.0.12:6379 172.38.0.13 :6379 172.38.0.14:6379 172.38.0.15:6379 172.38.0.16:6379 --cluster-replicas 1

進入容器
redis-cli -c # 查看詳細信息 CLUSTER INFO

查看nodes
CLUSTER NODES

設置值
set k1 v1

我們可以看到,將值設置在了 13節(jié)點上,我們把該節(jié)點停止,再次獲取值查看
# 新開窗口停止redis-3容器 docker stop redis -3
在原來窗口獲取k1
# 需要重新進入再次獲取 get k1

可以看到,值已經(jīng)同步到了其它節(jié)點,主節(jié)點掛掉后,我們照樣可以拿到值!
四、Spring Boot項目 打包鏡像
創(chuàng)建一個SpringBoot項目
TestController
@RestController
public class TestController {
@GetMapping("/hello")
public String hello() {
return "Hello World!!!";
}
}本地測試成功訪問,然后編譯項目為jar包
// 進入項目目錄 mvn clean package
下載Docker鏡像

編寫Dockerfile
FROM java:8 COPY *.jar /app.jar CMD ["--server.port=8080"] EXPOSE 8080 ENTRYPOINT ["java", "-jar", "/app.jar"]
將jar包和Dockerfile上傳至服務器

服務器文件

編譯Dockerfile
docker build -t xiaowang .

測試訪問
curl localhost:49153

成功上傳鏡像!
?小結(jié)
以上就是【Bug 終結(jié)者】對 Docker實戰(zhàn) – 部署Redis集群與部署微服務項目 的簡單介紹,使用Docker部署我們的應用很方便,快捷,但是架構(gòu)龐大的話,就不建議使用Docker了,可以采用我們的k8s集群部署,是當下最流行的技術(shù)!
到此這篇關(guān)于Docker中部署Redis集群與部署微服務項目的文章就介紹到這了,更多相關(guān)Redis集群與部署微服務項目內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解如何優(yōu)雅的給Docker配置網(wǎng)絡代理
有時因為網(wǎng)絡原因,比如公司 NAT,或其它啥的,需要使用代理,這篇文章主要為大家詳細介紹了如何優(yōu)雅的給Docker配置網(wǎng)絡代理,需要的小伙伴可以跟隨小編一起學習一下2024-01-01
vscode利用ssh配置docker容器并開啟遠程編程模式的詳細步驟
這篇文章主要介紹了vscode利用ssh配置docker容器內(nèi)開啟遠程編程模式,本文給大家講解的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-03-03
docker compose方式如何安裝ClickHouse數(shù)據(jù)庫
這篇文章主要介紹了docker compose方式如何安裝ClickHouse數(shù)據(jù)庫問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-04-04

