日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

>

目錄
  • redis集群概述
  • 使用Docker搭建Redis 集群
  • 測試哨兵

redis集群概述

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

  • redis cluster集群方案
  • master/slave主從方案
  • 使用哨兵模式來進行主從替換以及故障恢復

Sentinel系統可以監視一個或者多個redis master服務,以及master服務的所有從服務;當某個master服務下線時,自動將該master下的某個從服務升級為master服務替代已下線的master服務繼續處理請求。

Docker-compose搭建Redis集群(Sentinel)的實現

使用Docker搭建Redis 集群

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

sentinel.conf 文件配置

# 哨兵sentinel實例運行的端口 默認26379  
port 26379  
sentinel monitor mymaster redis-master 6379 3
# 指定多少毫秒之后 主節點沒有應答哨兵sentinel 此時 哨兵主觀上認為主節點下線 默認30秒
sentinel down-after-milliseconds mymaster 5000
# 指定了在發生failover主備切換時最多可以有多少個slave同時對新的master進行同步,這個數字越小,完成failover所需的時間就越長
sentinel parallel-syncs mymaster 1
# 故障轉移的超時時間
sentinel failover-timeout mymaster 5000

sentinel-entrypoint.sh腳本文件配置

# 同步配置文件,啟動哨兵
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指定基礎鏡像,同時拷貝配置文件到鏡像內部
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文件配置

# 搭建幾個從庫,就需要在services中配置幾個信息,開放相應端口
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

配置文件架構

redis-sentinel                        # 項目根路徑
    ├── docker-compose.yml            # docker-compose文件
    └── sentinel                      # 存放初始化sentinel容器的相關文件
        ├── Dockerfile                # sentinel構建鏡像文件
        ├── sentinel.conf             # sentinel配置文件
        └── sentinel-entrypoint.sh    # sentinel.sh啟動腳本

啟動服務

# 在后面加 -d 為在后臺啟動 
# compose啟動失敗可以嘗試手動啟動Containers
docker-compose up --scale redis-sentinel=4

Docker-compose搭建Redis集群(Sentinel)的實現

測試哨兵

打開4個Windows Terminal,連接redis,其中6380為master,6381、6382、6383為slave,此時只有master是有寫的權限的,當使用slava進行寫的時候會報 (error) READONLY You can't write against a read only replica.錯誤,即為搭建成功。

? kill掉主庫容器進程,模擬宕機

# Kill掉主庫容器進程,模擬宕機
docker kill Containerid

這就是所謂的高負載高可用架構,在使用集群承擔高負載的同時,也能進行高可用的容災機制。

>

分享到:
標簽:compose Docker 搭建 服務器 集群
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定