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

一、使用Docker部署的好處

Docker的好處在於:在不同實例上運行相同的容器

Docker的五大優點: 持續部署與測試多雲服務平臺支持環境標準化和版本控制隔離安全

二、Docker 與 Kubernetes 對比

Docker適用於較為小的應用,並發量不大的情況下、微服務為超過10個,建議適用Docker部署,這樣也省資源、可減少開發成本。

K8S適用於大集群的情況,高並發,並且微服務超過瞭10個,同時性能也是非常好的,性能好的前提下,開發成本也增加瞭不少

三、Redis集群部署實戰

下面部署如圖所示三主三從的Redis集群

停掉所有的容器,刪除全部記錄

docker rm $(docker ps -a -q)

創建自定義網絡redis

docker network create redis --subnet 172.38.0.0/16

通過腳本創建六個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容器,並進行數據掛載

# 通過腳本一次性啟動
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中設置創建集群

# 進入redis-1
docker exec -it redis-1 /bin/sh
# 創建集群
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節點上,我們把該節點停止,再次獲取值查看

# 新開窗口停止redis-3容器
docker stop redis -3

在原來窗口獲取k1

# 需要重新進入再次獲取
get k1

可以看到,值已經同步到瞭其它節點,主節點掛掉後,我們照樣可以拿到值!

四、Spring Boot項目 打包鏡像

創建一個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

成功上傳鏡像!

⛵小結

以上就是【Bug 終結者】對 Docker實戰 – 部署Redis集群與部署微服務項目 的簡單介紹,使用Docker部署我們的應用很方便,快捷,但是架構龐大的話,就不建議使用Docker瞭,可以采用我們的k8s集群部署,是當下最流行的技術!

到此這篇關於Docker中部署Redis集群與部署微服務項目的文章就介紹到這瞭,更多相關Redis集群與部署微服務項目內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: