国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

安陽做網(wǎng)站推廣網(wǎng)站排名優(yōu)化怎樣做

安陽做網(wǎng)站推廣,網(wǎng)站排名優(yōu)化怎樣做,深圳住房和建設(shè)局網(wǎng)站首頁,四川網(wǎng)站建設(shè)公司電話目錄 哨兵的作用和工作原理 服務(wù)狀態(tài)監(jiān)控 選舉新的 master 如何實(shí)現(xiàn)故障轉(zhuǎn)移 搭建哨兵集群 哨兵的作用和工作原理 Redis 提供了哨兵 (Sentinel) 機(jī)制來實(shí)現(xiàn)主從集群的自動(dòng)故障恢復(fù)。哨兵的結(jié)構(gòu)和作用如下 監(jiān)控:Sentinel 會(huì)不斷檢查你的 master 和 slave 是否按…

目錄

哨兵的作用和工作原理

服務(wù)狀態(tài)監(jiān)控

選舉新的 master

如何實(shí)現(xiàn)故障轉(zhuǎn)移

搭建哨兵集群

哨兵的作用和工作原理

Redis 提供了哨兵 (Sentinel) 機(jī)制來實(shí)現(xiàn)主從集群的自動(dòng)故障恢復(fù)。哨兵的結(jié)構(gòu)和作用如下

  • 監(jiān)控:Sentinel 會(huì)不斷檢查你的 master 和 slave 是否按預(yù)期工作

  • 自動(dòng)故障恢復(fù):如果 master 故障, Sentinel 會(huì)將一個(gè) Slave 提成為 master ,當(dāng)故障實(shí)例恢復(fù)后也還是以新的 master 為主

  • 通知:Sentinel 充當(dāng) Redis 客戶端的服務(wù)發(fā)現(xiàn)來源,當(dāng)集群發(fā)生故障轉(zhuǎn)移時(shí),會(huì)將最新消息推送至 Redis 客戶端

服務(wù)狀態(tài)監(jiān)控

Sentinel 基于心跳機(jī)制檢測(cè)服務(wù)狀態(tài),每隔 1 秒向集群的每個(gè)實(shí)例發(fā)送ping 命令

  • 主管下線:如果某 Sentinel 節(jié)點(diǎn)發(fā)現(xiàn)某實(shí)例未在規(guī)定時(shí)間內(nèi)響應(yīng),則認(rèn)為該實(shí)例主觀下線

  • 客觀下線:若超過指定數(shù)量(quorum)的 sentinel 都認(rèn)為該實(shí)例主觀下線,則該實(shí)例客觀下線。quorum 值最好超過 Sentinel 實(shí)例數(shù)量的一半

選舉新的 master

一旦發(fā)現(xiàn) master 故障,sentinel 需要在 slave 中選擇一個(gè)作為新的 master :

  • 首先會(huì)判斷 slave 節(jié)點(diǎn)與 master 節(jié)點(diǎn)斷開的時(shí)間長(zhǎng)短,如果超出指定值 (down-after-milliseconds * 10)則會(huì)排除該 slave 節(jié)點(diǎn)

  • 然后判斷 slave 節(jié)點(diǎn)的 slave-priority 值,越小優(yōu)先級(jí)越高,如果是 0 則永遠(yuǎn)不參與選舉

  • 如果 slave-prority 一樣,則判斷 slave 節(jié)點(diǎn)的 offset 值,越大說明數(shù)據(jù)越新,優(yōu)先級(jí)越高

  • 最后是判斷 slave 節(jié)點(diǎn)的運(yùn)行 id 大小,越小優(yōu)先級(jí)越高

如何實(shí)現(xiàn)故障轉(zhuǎn)移

當(dāng)選中了其中一個(gè) slave 為新的 master 后,故障的轉(zhuǎn)移的步驟如下

  • sentinel 給備選的 slave 節(jié)點(diǎn)發(fā)送 slaveof no one 命令,讓該節(jié)點(diǎn)成為 master

  • sentinel 給所有其他 slave 發(fā)送 slaveof 192.168.142.152 6379 命令,讓這些 slave 成為新的 master 的從節(jié)點(diǎn),開始從新的 master 上同步數(shù)據(jù)

  • 最后,sentinel 將故障節(jié)點(diǎn)標(biāo)記為 slave ,當(dāng)故障節(jié)點(diǎn)恢復(fù)后會(huì)自動(dòng)成為新的 master 的 slave 節(jié)點(diǎn)

搭建哨兵集群
IPPORTROLE
192.168.142.1576379master
192.168.142.1566379slave
192.168.142.1556379slave02
192.168.142.15726379sentinel
192.168.142.15626379sentinel
192.168.142.15526379sentinel

我這里省事,只用了三臺(tái)服務(wù)

master , sentinel

docker-compose.yml

services:redis-master:image: hub.atomgit.com/amd64/redis:7.0.13restart: alwayscontainer_name: redis-masterprivileged: trueports:- '6379:6379'volumes:- redis-data:/opt/bitnami/redis/data- /root/redis.conf:/etc/redis.conf- /etc/localtime:/etc/localtime:rocommand:- /bin/sh- -c- redis-server /etc/redis.confredis-sentinel:image: hub.atomgit.com/amd64/redis:7.0.13restart: alwayscontainer_name: redis-sentinelprivileged: trueports:- '26379:26379'volumes:- /root/sentinel.conf:/etc/sentinel.conf- /etc/localtime:/etc/localtime:rocommand:- /bin/sh- -c- redis-server /etc/sentinel.conf --sentinel
volumes:redis-data:

redis.conf

daemonize no
port 6379
protected-mode no
bind 0.0.0.0
requirepass 123456

sentinel.conf

port 26379
protected-mode no
sentinel monitor mymaster 192.168.142.157 6379 2
sentinel auth-pass mymaster 123456
sentinel down-after-milliseconds mymaster 5000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 3000

slave , sentinel

docker-compose.yml

services:redis-slave:image: hub.atomgit.com/amd64/redis:7.0.13restart: alwayscontainer_name: redis-slaveprivileged: trueports:- '6379:6379'volumes:- redis-data:/opt/bitnami/redis/data- /root/redis.conf:/etc/redis.conf- /etc/localtime:/etc/localtime:rocommand:- /bin/sh- -c- redis-server /etc/redis.confredis-sentinel:image: hub.atomgit.com/amd64/redis:7.0.13restart: alwayscontainer_name: redis-sentinelprivileged: trueports:- '26379:26379'volumes:- /root/sentinel.conf:/etc/sentinel.conf- /etc/localtime:/etc/localtime:rocommand:- /bin/sh- -c- redis-server /etc/sentinel.conf --sentinel
volumes:redis-data:

redis.conf

daemonize no
port 6379
protected-mode no
masterauth 123456
requirepass 123456
slave-read-only yes
bind 0.0.0.0
slaveof 192.168.142.157 6379

sentinel.conf

port 26379
protected-mode no
sentinel monitor mymaster 192.168.142.157 6379 2
sentinel auth-pass mymaster 123456
sentinel down-after-milliseconds mymaster 5000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 3000

slave02 , sentinel

docker-compose.yml

services:redis-slave02:image: hub.atomgit.com/amd64/redis:7.0.13restart: alwayscontainer_name: redis-slave02privileged: trueports:- '6379:6379'volumes:- redis-data:/opt/bitnami/redis/data- /root/redis.conf:/etc/redis.conf- /etc/localtime:/etc/localtime:rocommand:- /bin/sh- -c- redis-server /etc/redis.confredis-sentinel:image: hub.atomgit.com/amd64/redis:7.0.13restart: alwayscontainer_name: redis-sentinelprivileged: trueports:- '26379:26379'volumes:- /root/sentinel.conf:/etc/sentinel.conf- /etc/localtime:/etc/localtime:rocommand:- /bin/sh- -c- redis-server /etc/sentinel.conf --sentinel
volumes:redis-data:

redis.conf

daemonize no
port 6379
protected-mode no
masterauth 123456
requirepass 123456
slave-read-only yes
bind 0.0.0.0
slaveof 192.168.142.157 6379

sentinel.conf

port 26379
protected-mode no
sentinel monitor mymaster 192.168.142.157 6379 2
sentinel auth-pass mymaster 123456
sentinel down-after-milliseconds mymaster 5000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 3000

哨兵就盯著 master 看,一旦 master g了就立刻預(yù)警,就可以開始啟動(dòng) docker 了

啟動(dòng) docker

在三臺(tái)主機(jī)上分別執(zhí)行

docker compose up -d

查看狀態(tài) Up 表示成功啟動(dòng)

root@master:~# docker ps -a
CONTAINER ID   IMAGE                                COMMAND                  CREATED          STATUS          PORTS                                                     NAMES
aa6466e6fa15   hub.atomgit.com/amd64/redis:7.0.13   "docker-entrypoint.s…"   27 minutes ago   Up 21 minutes   6379/tcp, 0.0.0.0:26379->26379/tcp, :::26379->26379/tcp   redis-sentinel
27a2f19d8040   hub.atomgit.com/amd64/redis:7.0.13   "docker-entrypoint.s…"   27 minutes ago   Up 21 minutes   0.0.0.0:6379->6379/tcp, :::6379->6379/tcp                 redis-master
 root@slave:~# docker ps -a
CONTAINER ID   IMAGE                                COMMAND                  CREATED             STATUS          PORTS                                                     NAMES
1d3df2c507f5   hub.atomgit.com/amd64/redis:7.0.13   "docker-entrypoint.s…"   25 minutes ago      Up 21 minutes   6379/tcp, 0.0.0.0:26379->26379/tcp, :::26379->26379/tcp   redis-sentinel
b9b981917f2d   hub.atomgit.com/amd64/redis:7.0.13   "docker-entrypoint.s…"   About an hour ago   Up 21 minutes   0.0.0.0:6379->6379/tcp, :::6379->6379/tcp                 redis-slave
root@slave02:~# docker ps -a
CONTAINER ID   IMAGE                                COMMAND                  CREATED             STATUS          PORTS                                                     NAMES
774fb813bbf2   hub.atomgit.com/amd64/redis:7.0.13   "docker-entrypoint.s…"   23 minutes ago      Up 20 minutes   6379/tcp, 0.0.0.0:26379->26379/tcp, :::26379->26379/tcp   redis-sentinel
02a276c8edc8   hub.atomgit.com/amd64/redis:7.0.13   "docker-entrypoint.s…"   About an hour ago   Up 20 minutes   0.0.0.0:6379->6379/tcp, :::6379->6379/tcp                 redis-slave02

啟動(dòng)成功就可以去查看 sentinel 的狀態(tài)了

root@master:~# docker exec redis-sentinel redis-cli -p 26379 -c info sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_tilt_since_seconds:-1
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=192.168.142.157:6379,slaves=2,sentinels=1
root@slave:~# docker exec -it redis-sentinel redis-cli -p 26379 -c info sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_tilt_since_seconds:-1
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=192.168.142.157:6379,slaves=0,sentinels=1
root@slave02:~# docker exec -it redis-sentinel redis-cli -p 26379 -c info sentinel
# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_tilt_since_seconds:-1
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=192.168.142.157:6379,slaves=0,sentinels=1

出現(xiàn)本機(jī) ip 和 ok 狀態(tài)就代表哨兵啟動(dòng)成功

測(cè)試

假設(shè) master 宕機(jī)

root@master:~# docker stop redis-master

查看 slave

root@slave:~# docker exec redis-slave redis-cli -a 123456 -c role
slave
192.168.142.157
6379
connect
-1
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.

查看 slave02

root@slave02:~# docker exec -it redis-slave02 redis-cli -a 123456 -c role
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
1) "master"
2) (integer) 19487
3) 1) 1) "192.168.142.156"2) "6379"3) "19347"

到此,哨兵搭建完成

補(bǔ)充

關(guān)于 sentinel.conf 講解

  • sentinel monitor mymaster 192.168.142.157?6379 2 指定主節(jié)點(diǎn)信息

    • mymaster 主節(jié)點(diǎn)名稱,自定義

    • 192.168.142.157?6379 主節(jié)點(diǎn) IP 和端口

    • 2 選舉 master 時(shí)的 quorum 值

  • sentinel down-after-milliseconds mymaster 5000 salve 與 master 斷開的超時(shí)時(shí)間

  • sentinel failover-timeout mymaster 60000 故障恢復(fù)的超時(shí)時(shí)間

  • sentinel auth-pass mymaster 123456 主節(jié)點(diǎn)密碼

  • sentinel parallel-syncs mymaster 1
    這條指令告訴 Sentinel,對(duì)于名為 mymaster 的 Redis 主節(jié)點(diǎn),在進(jìn)行故障轉(zhuǎn)移時(shí),只允許一個(gè)從節(jié)點(diǎn)同時(shí)對(duì)新的主節(jié)點(diǎn)進(jìn)行數(shù)據(jù)同步。這意味著在故障轉(zhuǎn)移過程中,只有一個(gè)從節(jié)點(diǎn)會(huì)開始與新的主節(jié)點(diǎn)同步數(shù)據(jù),其他從節(jié)點(diǎn)會(huì)等待,直到該從節(jié)點(diǎn)完成同步后才開始。

    設(shè)置 parallel-syncs 為 1 可以確保在故障轉(zhuǎn)移期間,只有一個(gè)從節(jié)點(diǎn)在任何給定時(shí)間與新的主節(jié)點(diǎn)進(jìn)行數(shù)據(jù)同步。這樣做的好處是可以減少對(duì)新主節(jié)點(diǎn)的負(fù)載,避免在故障轉(zhuǎn)移期間對(duì)新主節(jié)點(diǎn)造成過大的壓力,從而影響其性能。然而,這也意味著故障轉(zhuǎn)移過程可能會(huì)花費(fèi)更長(zhǎng)的時(shí)間,因?yàn)閺墓?jié)點(diǎn)需要一個(gè)接一個(gè)地進(jìn)行數(shù)據(jù)同步。

http://www.aloenet.com.cn/news/32281.html

相關(guān)文章:

  • 產(chǎn)品經(jīng)理如何做p2p網(wǎng)站改版短視頻矩陣seo系統(tǒng)源碼
  • 長(zhǎng)沙手機(jī)網(wǎng)站設(shè)計(jì)公司百度瀏覽官網(wǎng)
  • 最簡(jiǎn)單的網(wǎng)站制作360指數(shù)官網(wǎng)
  • 做網(wǎng)站文章要一篇一篇的寫嗎獲客
  • wordpress全站登陸可見教育培訓(xùn)機(jī)構(gòu)加盟十大排名
  • 防止網(wǎng)站流量被刷seo數(shù)據(jù)是什么
  • 微信小程序代運(yùn)營(yíng)長(zhǎng)沙排名優(yōu)化公司
  • 橙色網(wǎng)站欣賞百度一下百度搜索
  • 網(wǎng)站布局如何修改重慶網(wǎng)站制作公司
  • 2015做啥網(wǎng)站能致富百度官方網(wǎng)頁
  • 做一手房用什么網(wǎng)站百度競(jìng)價(jià)開戶需要多少錢
  • 南通網(wǎng)站建設(shè)優(yōu)化公司網(wǎng)站優(yōu)化排名公司
  • 網(wǎng)站建設(shè)頁面設(shè)計(jì)規(guī)格全國(guó)31省市疫情最新消息今天
  • 正規(guī)網(wǎng)站建設(shè)定制學(xué)電商出來一般干什么工作
  • 莒縣網(wǎng)站設(shè)計(jì)免費(fèi)百度seo引流
  • 微信登錄界面相城seo網(wǎng)站優(yōu)化軟件
  • 青海省高速公路建設(shè)管理局網(wǎng)站百度知道網(wǎng)頁版入口
  • 外包項(xiàng)目刷seo快速排名
  • 品牌網(wǎng)站建設(shè)有哪兩種模式百度問問
  • 網(wǎng)頁設(shè)計(jì)作業(yè)報(bào)告范文成都網(wǎng)站優(yōu)化
  • 設(shè)計(jì)培訓(xùn)網(wǎng)頁版草根seo視頻大全網(wǎng)站
  • 黃石企業(yè)網(wǎng)站建設(shè)開發(fā)阿里云com域名注冊(cè)
  • 龍華哪有做網(wǎng)站設(shè)計(jì)網(wǎng)站關(guān)鍵詞優(yōu)化排名推薦
  • 蘭州關(guān)鍵詞優(yōu)化效果西安seo服務(wù)培訓(xùn)
  • wordpress技術(shù)類主題關(guān)鍵詞長(zhǎng)尾詞優(yōu)化
  • 用什么做網(wǎng)站最簡(jiǎn)單百度招商加盟
  • 建站工具官網(wǎng)小程序開發(fā)流程
  • 網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司品牌營(yíng)銷推廣策劃公司
  • 華為云怎么做網(wǎng)站域名??烤W(wǎng)頁app推廣大全
  • 汽車app網(wǎng)站建設(shè)優(yōu)化關(guān)鍵詞規(guī)則