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

Docker-compose搭建Redis集群(Sentinel)的實(shí)現(xiàn)

 更新時(shí)間:2023年07月07日 11:31:00   作者:樓下安同學(xué)  
本文主要介紹了Docker-compose搭建Redis集群(Sentinel)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

redis集群概述

Redis的集群方案大致有三種:

  • redis cluster集群方案
  • master/slave主從方案
  • 使用哨兵模式來(lái)進(jìn)行主從替換以及故障恢復(fù)

Sentinel系統(tǒng)可以監(jiān)視一個(gè)或者多個(gè)redis master服務(wù),以及master服務(wù)的所有從服務(wù);當(dāng)某個(gè)master服務(wù)下線時(shí),自動(dòng)將該master下的某個(gè)從服務(wù)升級(jí)為master服務(wù)替代已下線的master服務(wù)繼續(xù)處理請(qǐng)求。

使用Docker搭建Redis 集群

打開Windows Terminal 新建redis-sentinel主目錄,進(jìn)入目錄內(nèi)部,在新建一個(gè)sentinel目錄用來(lái)存放哨兵腳本。在sentinel目錄中新建 sentinel.conf 配置文件、Dockerfile、sentinel-entrypoint.sh腳本文件。

sentinel.conf 文件配置

# 哨兵sentinel實(shí)例運(yùn)行的端口 默認(rèn)26379  
port 26379  
sentinel monitor mymaster redis-master 6379 3
# 指定多少毫秒之后 主節(jié)點(diǎn)沒(méi)有應(yīng)答哨兵sentinel 此時(shí) 哨兵主觀上認(rèn)為主節(jié)點(diǎn)下線 默認(rèn)30秒
sentinel down-after-milliseconds mymaster 5000
# 指定了在發(fā)生failover主備切換時(shí)最多可以有多少個(gè)slave同時(shí)對(duì)新的master進(jìn)行同步,這個(gè)數(shù)字越小,完成failover所需的時(shí)間就越長(zhǎng)
sentinel parallel-syncs mymaster 1
# 故障轉(zhuǎn)移的超時(shí)時(shí)間
sentinel failover-timeout mymaster 5000

sentinel-entrypoint.sh腳本文件配置

# 同步配置文件,啟動(dòng)哨兵
sed -i "s/$SENTINEL_QUORUM/$SENTINEL_QUORUM/g" /etc/redis/sentinel.conf
sed -i "s/$SENTINEL_DOWN_AFTER/$SENTINEL_DOWN_AFTER/g" /etc/redis/sentinel.conf
sed -i "s/$SENTINEL_FAILOVER/$SENTINEL_FAILOVER/g" /etc/redis/sentinel.conf
exec docker-entrypoint.sh redis-server /etc/redis/sentinel.conf --sentinel

Dockerfile文件配置

# 建立Dockerfile指定基礎(chǔ)鏡像,同時(shí)拷貝配置文件到鏡像內(nèi)部
FROM redis
EXPOSE 26379
ADD sentinel.conf /etc/redis/sentinel.conf
RUN chown redis:redis /etc/redis/sentinel.conf
COPY sentinel-entrypoint.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/sentinel-entrypoint.sh
ENTRYPOINT ["sentinel-entrypoint.sh"]

docker-compose.yml文件配置

# 搭建幾個(gè)從庫(kù),就需要在services中配置幾個(gè)信息,開放相應(yīng)端口
version: '2'
networks:
  app-tier:
    driver: bridge
services:
  redis:
    image: 'bitnami/redis:latest'
    environment:
      - REDIS_REPLICATION_MODE=master
      - REDIS_PASSWORD=""
    networks:
      - app-tier
    ports:
      - '6380:6379'
  redis-slave:
    image: 'bitnami/redis:latest'
    environment:
      - REDIS_REPLICATION_MODE=slave
      - REDIS_MASTER_HOST=redis
      - REDIS_MASTER_PASSWORD=""
      - REDIS_PASSWORD=""
    ports:
      - '6381:6379'
    depends_on:
      - redis
    networks:
      - app-tier
  redis-slave2:
    image: 'bitnami/redis:latest'
    environment:
      - REDIS_REPLICATION_MODE=slave
      - REDIS_MASTER_HOST=redis
      - REDIS_MASTER_PASSWORD=""
      - REDIS_PASSWORD=""
    ports:
      - '6382:6379'
    depends_on:
      - redis
    networks:
      - app-tier
  redis-slave3:
    image: 'bitnami/redis:latest'
    environment:
      - REDIS_REPLICATION_MODE=slave
      - REDIS_MASTER_HOST=redis
      - REDIS_MASTER_PASSWORD=""
      - REDIS_PASSWORD=""
    ports:
      - '6383:6379'
    depends_on:
      - redis
    networks:
      - app-tier  
  redis-sentinel:
    image: 'bitnami/redis-sentinel:latest'
    environment:
      - REDIS_MASTER_PASSWORD=""
    depends_on:
      - redis
      - redis-slave
      - redis-slave2
      - redis-slave3
    ports:
      - '26379-26382:26379'
    networks:
      - app-tier

配置文件架構(gòu)

redis-sentinel                        # 項(xiàng)目根路徑
    ├── docker-compose.yml            # docker-compose文件
    └── sentinel                      # 存放初始化sentinel容器的相關(guān)文件
        ├── Dockerfile                # sentinel構(gòu)建鏡像文件
        ├── sentinel.conf             # sentinel配置文件
        └── sentinel-entrypoint.sh    # sentinel.sh啟動(dòng)腳本

啟動(dòng)服務(wù)

# 在后面加 -d 為在后臺(tái)啟動(dòng) 
# compose啟動(dòng)失敗可以嘗試手動(dòng)啟動(dòng)Containers
docker-compose up --scale redis-sentinel=4

測(cè)試哨兵

打開4個(gè)Windows Terminal,連接redis,其中6380為master,6381、6382、6383為slave,此時(shí)只有master是有寫的權(quán)限的,當(dāng)使用slava進(jìn)行寫的時(shí)候會(huì)報(bào) (error) READONLY You can't write against a read only replica.錯(cuò)誤,即為搭建成功。

? kill掉主庫(kù)容器進(jìn)程,模擬宕機(jī)

# Kill掉主庫(kù)容器進(jìn)程,模擬宕機(jī)
docker kill Containerid

這就是所謂的高負(fù)載高可用架構(gòu),在使用集群承擔(dān)高負(fù)載的同時(shí),也能進(jìn)行高可用的容災(zāi)機(jī)制。

到此這篇關(guān)于Docker-compose搭建Redis集群(Sentinel)的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Docker-Compose搭建Redis集群內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker跨服務(wù)器通信Overlay解決方案(上)之 Consul單實(shí)例

    Docker跨服務(wù)器通信Overlay解決方案(上)之 Consul單實(shí)例

    這篇文章主要介紹了Docker跨服務(wù)器通信Overlay解決方案(上)之 Consul單實(shí)例,本文通過(guò)場(chǎng)景分析實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • docker-compose簡(jiǎn)單使用方法詳解

    docker-compose簡(jiǎn)單使用方法詳解

    Compose通過(guò)一個(gè)配置文件來(lái)管理多個(gè)Docker容器,在配置文件中,所有的容器通過(guò)services來(lái)定義,然后使用docker-compose腳本來(lái)啟動(dòng),停止和重啟應(yīng)用,和應(yīng)用中的服務(wù)以及所有依賴服務(wù)的容器,這篇文章主要介紹了docker-compose簡(jiǎn)單使用方法,需要的朋友可以參考下
    2022-10-10
  • docker 安裝ElasticSearch 6.x的教程詳解

    docker 安裝ElasticSearch 6.x的教程詳解

    這篇文章主要介紹了docker 安裝ElasticSearch 6.x的教程,非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-04-04
  • docker搭建本地私有倉(cāng)庫(kù)的實(shí)現(xiàn)

    docker搭建本地私有倉(cāng)庫(kù)的實(shí)現(xiàn)

    有時(shí)候使用Docker Hub這樣的公共倉(cāng)庫(kù)可能不方便,這種情況下用戶可以使用registry創(chuàng)建一個(gè)本地倉(cāng)庫(kù)供私人使用,本文主要介紹了docker搭建本地私有倉(cāng)庫(kù)的實(shí)現(xiàn),感興趣的可以了解一下
    2023-12-12
  • Docker容器如何開啟特權(quán)模式

    Docker容器如何開啟特權(quán)模式

    文章主要解決Docker容器中無(wú)法使用systemctl命令的問(wèn)題,其原因在于大部分的系統(tǒng)鏡像移除了init軟件包,導(dǎo)致鏡像中沒(méi)有/sbin/init文件,解決方法是通過(guò)編寫Dockerfile文件修改鏡像,構(gòu)建新的鏡像,并運(yùn)行新構(gòu)建的鏡像,需要注意的是,開啟特權(quán)模式雖然方便,但可能存在安全風(fēng)險(xiǎn)
    2024-10-10
  • Docker?安裝Nginx與配置Nginx的案例

    Docker?安裝Nginx與配置Nginx的案例

    Nginx是一個(gè)高性能的HTTP和反向代理web服務(wù)器,ginx是一款輕量級(jí)的Web?服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/POP3)代理服務(wù)器,在BSD-like?協(xié)議下發(fā)行,下面通過(guò)本文給大家介紹Docker?安裝Nginx與配置Nginx的案例,感興趣的朋友一起看看吧
    2024-08-08
  • ubuntu22通過(guò)docker安裝wechat啟動(dòng)后無(wú)界面的問(wèn)題及解決方法

    ubuntu22通過(guò)docker安裝wechat啟動(dòng)后無(wú)界面的問(wèn)題及解決方法

    這篇文章主要介紹了ubuntu22通過(guò)docker安裝wechat啟動(dòng)后無(wú)界面的解決方法,通過(guò)微信創(chuàng)建腳本發(fā)現(xiàn)一系列問(wèn)題,最終在小編的努力下順利解決,下面把解決過(guò)程分享給大家,需要的朋友可以參考下
    2022-07-07
  • ubuntu如何在docker容器中安裝strongswan

    ubuntu如何在docker容器中安裝strongswan

    這篇文章主要介紹了ubuntu如何在docker容器中安裝strongswan,起動(dòng)一個(gè)ubuntu容器,我是用的docker compose啟動(dòng)的,compose的配置文件為ipsec-strongswan.yml,感興趣的朋友跟隨小編一起看看吧
    2024-04-04
  • docker 查看容器日志命令的實(shí)現(xiàn)

    docker 查看容器日志命令的實(shí)現(xiàn)

    這篇文章主要介紹了docker 查看容器日志命令的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Docker部署MinIO鏡像的方法(保姆級(jí)教程)

    Docker部署MinIO鏡像的方法(保姆級(jí)教程)

    本文主要介紹了使用Docker部署MinIO鏡像,包括創(chuàng)建掛載目錄、運(yùn)行MinIO容器的參數(shù)解析、使用Compose運(yùn)行MinIO容器等,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-12-12

最新評(píng)論