<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      1.編寫redis集群主節點的配置文件

        redis-master.conf

      port 6379
      bind 0.0.0.0
      protected-mode no

        redis-slavle1.conf

      port 6379
      bind 0.0.0.0
      slaveof redis-master 6379
      protected-mode no

      redis-slavle2.conf

      port 6379
      bind 0.0.0.0
      slaveof redis-master 6379
      protected-mode no

      字段解析:

      1. port 6379
      含義:指定 Redis 服務監聽的 TCP 端口號。
      
      默認值:6379。
      
      作用:
      
      客戶端通過該端口連接 Redis 服務器。
      
      同一臺機器上運行多個 Redis 實例時,需為每個實例分配不同端口(如 6380、6381)。
      
      2. bind 0.0.0.0
      含義:指定 Redis 監聽的 網絡接口(IP 地址)。
      
      默認值:默認僅監聽本地回環地址 127.0.0.1。
      
      作用:
      
      0.0.0.0 表示監聽所有可用網絡接口(允許任意 IP 連接 Redis)。
      
      若需限制訪問來源,可指定具體 IP(如 bind 192.168.1.100)。
      
      3. slaveof redis-master 6379
      含義:將該 Redis 實例配置為 從節點(Slave),復制指定主節點(Master)的數據。
      
      redis-master:主節點的域名或 IP 地址。
      
      6379:主節點的端口。
      
      作用:
      
      從節點會自動連接主節點并同步數據(全量或增量復制)。
      
      若主節點配置了密碼,需在從節點添加 masterauth <password> 參數。
      
      4. protected-mode no
      含義:是否啟用 保護模式。
      
      yes:若未配置密碼且未綁定 IP,僅允許本地連接。
      
      no:允許遠程連接,即使未設置密碼。
      
      作用:
      
      生產環境強烈建議設為 yes,并配合 requirepass 設置密碼。
      
      在測試或內網環境中可設為 no,但需確保網絡安全(如防火墻限制)


      # 安全增強配置(建議生產環境啟用)
      requirepass your_redis_password      # 設置 Redis 訪問密碼
      masterauth your_master_password      # 主節點密碼(從節點需要)
       

       

       

      2.編寫sentinel配置文件

      sentinel1.conf

      port 26379
      sentinel monitor mymaster 47.117.177.159 6379 2
      logfile "sentinel1.log"
      sentinel down-after-milliseconds mymaster 30000  
      sentinel parallel-syncs mymaster 1
      sentinel failover-timeout mymaster 180000
      protected-mode no

      sentinel2.conf

      port 26379
      sentinel monitor mymaster 47.117.177.159 6379 2
      logfile "sentinel2.log"
      sentinel down-after-milliseconds mymaster 30000  
      sentinel parallel-syncs mymaster 1  
      sentinel failover-timeout mymaster 180000  
      protected-mode no

      sentinel3.conf

      port 26379
      sentinel monitor mymaster 47.117.177.159 6379 2
      logfile "sentinel3.log"
      sentinel down-after-milliseconds mymaster 30000  
      sentinel parallel-syncs mymaster 1  
      sentinel failover-timeout mymaster 180000  
      protected-mode no

      配置文件解析

      port 26379
      daemonize yes
      logfile "/var/log/redis/sentinel.log"
      
      # 主節點配置:監控名為 mymaster 的主節點,地址為 192.168.1.100:6379,法定人數為 2
      sentinel monitor mymaster 192.168.1.100 6379 2
      
      # 主節點密碼(與 Redis 的 requirepass 一致)
      sentinel auth-pass mymaster your_redis_password
      
      # 主節點 5000 毫秒無響應視為下線
      sentinel down-after-milliseconds mymaster 5000
      
      # 故障轉移超時時間為 3 分鐘
      sentinel failover-timeout mymaster 180000
      
      # 每次允許 1 個從節點同步新主節點
      sentinel parallel-syncs mymaster 1
      
      # 關閉保護模式(允許外部訪問)
      protected-mode no
      
      # 哨兵節點間通信密碼(可選)
      requirepass "your_sentinel_password"

      docker-compose.yaml

      version: "3.7"
      services:
        redis-master:
          image: redis:latest
          container_name: redis-master
          ports:
            - "6379:6379"
          volumes:
            - redis_master_data:/data
            - ./redis-master.conf:/usr/local/etc/redis/redis.conf
          command: redis-server /usr/local/etc/redis/redis.conf # 告訴 Docker 在啟動容器時運行 redis-server 命令,并且使用 /usr/local/etc/redis/redis.conf 這個配置文件來啟動 Redis 服務。
          networks:
            - redisnet
      
        redis-slave1:
          image: redis:latest
          container_name: redis-slave1
          ports:
            - "6380:6379"
          volumes:
            - redis_slave1_data:/data
            - ./redis-slave1.conf:/usr/local/etc/redis/redis.conf
          command: redis-server /usr/local/etc/redis/redis.conf
          depends_on:
            - redis-master
          networks:
            - redisnet
      
        redis-slave2:
          image: redis:latest
          container_name: redis-slave2
          ports:
            - "6381:6379"
          volumes:
            - redis_slave2_data:/data
            - ./redis-slave2.conf:/usr/local/etc/redis/redis.conf
          command: redis-server /usr/local/etc/redis/redis.conf
          depends_on:
            - redis-master
          networks:
            - redisnet
      
        redis-sentinel1:
          image: redis:latest
          container_name: redis-sentinel1
          ports:
            - "26379:26379"  
          volumes:
            - redis_sentinel1_data:/data
            - ./sentinel1.conf:/usr/local/etc/redis/sentinel.conf
          depends_on:
            - redis-master
            - redis-slave1
            - redis-slave2
          networks:
            - redisnet
          command: redis-sentinel /usr/local/etc/redis/sentinel.conf
      
        redis-sentinel2:
          image: redis:latest
          container_name: redis-sentinel2
          ports:
            - "26380:26379"
          volumes:
            - redis_sentinel2_data:/data
            - ./sentinel2.conf:/usr/local/etc/redis/sentinel.conf
          networks:
            - redisnet
          depends_on:
            - redis-master
            - redis-slave1
            - redis-slave2
      
          command: redis-sentinel /usr/local/etc/redis/sentinel.conf
      
        redis-sentinel3:
          image: redis:latest
          container_name: redis-sentinel3
          ports:
            - "26381:26379"
          volumes:
            - redis_sentinel3_data:/data
            - ./sentinel3.conf:/usr/local/etc/redis/sentinel.conf
          depends_on:
            - redis-master
            - redis-slave1
            - redis-slave2
          networks:
            - redisnet
          command: redis-sentinel /usr/local/etc/redis/sentinel.conf
      
      
      
      networks:
        redisnet:
          driver: bridge
      
      volumes:
        redis_master_data:
        redis_slave1_data:
        redis_slave2_data:
        redis_sentinel1_data:
        redis_sentinel2_data:
        redis_sentinel3_data:

       

      哨兵之間的常見問題

      在 Redis 哨兵(Sentinel)模式中,哨兵不僅監聽主節點,還會自動發現并監控所有從節點和其他哨兵節點。以下是哨兵的監控范圍和詳細工作機制:


      1. 哨兵的監控對象

      監控對象說明
      主節點(Master) 核心監控目標,哨兵通過定期心跳檢測主節點健康狀態。
      從節點(Slave) 自動發現主節點的所有從節點,并監控其在線狀態和復制延遲。
      其他哨兵節點 哨兵之間互相通信,組成分布式集群,共同決策故障轉移。

      2. 哨兵如何發現從節點和其他哨兵?

      • 從節點的發現
        哨兵通過向主節點發送 INFO REPLICATION 命令,獲取主節點的從節點列表,隨后與每個從節點建立連接并監控。

        bash
        復制
        # 主節點返回的示例信息(包含從節點地址)
        # Replication
        role:master
        connected_slaves:2
        slave0:ip=192.168.1.101,port=6379,state=online,offset=12345,lag=0
        slave1:ip=192.168.1.102,port=6379,state=online,offset=12345,lag=1
      • 其他哨兵的發現
        哨兵通過向主節點的 __sentinel__:hello Pub/Sub 頻道發布自身信息,其他哨兵訂閱該頻道以互相發現。

        bash
        復制
        # 哨兵發布的消息格式
        [sentinel_ip,sentinel_port,sentinel_runid,current_epoch] master_name,master_ip,master_port,config_epoch

      3. 哨兵的監控行為

      對主節點的監控

      • 心跳檢測
        哨兵每隔 sentinel down-after-milliseconds 配置的時間(默認 30 秒)向主節點發送 PING 命令,檢測其是否存活。

      • 角色驗證
        哨兵定期檢查主節點是否仍為 role:master,防止配置錯誤或手動干預導致角色異常。

      對從節點的監控

      • 復制狀態檢查
        哨兵驗證從節點是否正常復制主節點數據(通過 INFO REPLICATION 檢查 master_link_status)。

      • 數據同步延遲監控
        哨兵記錄從節點的復制偏移量(offset),用于選擇新主節點時優先選擇數據最新的從節點。

      對其他哨兵的監控

      • 存活檢測
        哨兵定期與其他哨兵通信,確保集群多數派存活,避免因網絡分區導致腦裂。

      • 配置同步
        哨兵通過共識協議(如 Raft)同步主節點狀態和故障轉移決策。


      4. 哨兵的核心職責

      1. 主節點健康檢測
        判斷主節點是否客觀下線(ODOWN)。

      2. 自動故障轉移
        選舉新主節點并更新集群配置。

      3. 配置傳播
        通知客戶端和其他節點新主節點的地址。

      4. 從節點管理
        監控從節點狀態,確保數據一致性。


      5. 示例場景

      • 初始狀態

        • 主節點:Master:192.168.1.100:6379

        • 從節點:Slave1:192.168.1.101:6379Slave2:192.168.1.102:6379

        • 哨兵:Sentinel1:192.168.1.200:26379Sentinel2:192.168.1.201:26379

      • 主節點故障后

        1. 哨兵檢測到主節點不可達,觸發故障轉移。

        2. 哨兵選擇 Slave1 為新主節點,并通知 Slave2 切換復制源。

        3. 原主節點恢復后,哨兵將其設置為 Slave1 的從節點。


      6. 配置參數

      在哨兵配置文件(sentinel.conf)中,以下參數控制監控行為:

      conf
      復制
      # 監控主節點
      sentinel monitor mymaster 192.168.1.100 6379 2
      
      # 主節點無響應 5 秒后標記為“主觀下線”
      sentinel down-after-milliseconds mymaster 5000
      
      # 從節點優先級(值越小優先級越高)
      sentinel slave-priority mymaster 50

      總結

        • 監控范圍
          哨兵同時監控主節點、從節點和其他哨兵,確保集群狀態全面可見。

        • 核心目標
          通過多維度監控和自動化決策,保障 Redis 集群的高可用性和數據一致性。

        • 配置要點
          合理設置 down-after-milliseconds 和 quorum,避免誤判和腦裂。

       

      posted on 2025-03-22 16:39  輪滑少年  閱讀(163)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 99久久免费精品国产色| 50岁熟妇的呻吟声对白| 狠狠色噜噜狠狠狠狠色综合网 | 正在播放国产对白孕妇作爱| 国产成人精品a视频一区| 欧美福利在线| 亚洲精品中文字幕码专区| 顶级少妇做爰视频在线观看| 国精偷拍一区二区三区| 男女性高爱潮免费网站| 国产精品中文字幕综合| 亚洲欧美综合人成在线| 亚洲中文精品一区二区| 免费观看羞羞视频网站| 乱人伦人妻中文字幕无码久久网| 国产精品中文字幕一二三| 日本一区三区高清视频| 乱色欧美激惰| 开心一区二区三区激情| 亚洲精品美女久久久久99| 熟女亚洲综合精品伊人久久| 亚洲蜜臀av乱码久久| 阜新市| 久久精品国产亚洲精品色婷婷| 无码人妻一区二区三区兔费| 国产精品麻豆中文字幕| 国产91丝袜在线观看| 日韩有码中文字幕av| 国产午夜精品福利91| 久久人人97超碰精品| 老司机午夜福利视频| 国产日韩AV免费无码一区二区三区| 韩国三级网一区二区三区| 国产成人无码一区二区三区在线| 日韩高清在线亚洲专区不卡 | 久久午夜夜伦鲁鲁片免费无码| 欧美成人www免费全部网站| 精品亚洲国产成人痴汉av| AV秘 无码一区二| 日本一区三区高清视频| 亚洲成人av在线高清|