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

Redis Sentinel實(shí)現(xiàn)哨兵模式搭建小結(jié)

 更新時(shí)間:2018年12月27日 11:42:24   作者:NickBoyer  
這篇文章主要介紹了Redis Sentinel實(shí)現(xiàn)哨兵模式搭建小結(jié),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

Redis哨兵模式,用現(xiàn)在流行的話(huà)可以說(shuō)就是一個(gè)“哨兵機(jī)器人”,給“哨兵機(jī)器人”進(jìn)行相應(yīng)的配置之后,這個(gè)"機(jī)器人"可以7*24小時(shí)工作,它能能夠自動(dòng)幫助你做一些事情,如監(jiān)控,提醒,自動(dòng)處理故障等。

Redis-sentinel簡(jiǎn)介

Redis-sentinel是Redis的作者antirez,因?yàn)镽edis集群的被各大公司使用,每個(gè)公司要寫(xiě)自己的集群管理工具,于是antirez花了幾個(gè)星期寫(xiě)出了Redis-sentinel。

Redis 的 Sentinel 系統(tǒng)用于管理多個(gè) Redis 服務(wù)器(instance),Redis 的 Sentinel 為Redis提供了高可用性。使用哨兵模式創(chuàng)建一個(gè)可以不用人為干預(yù)而應(yīng)對(duì)各種故障的Redis部署。

該系統(tǒng)執(zhí)行以下三個(gè)任務(wù):

  • 監(jiān)控(Monitoring):Sentinel會(huì)不斷地檢查你的主服務(wù)器和從服務(wù)器是否允許正常。
  • 提醒(Notification):當(dāng)被監(jiān)控的某個(gè)Redis服務(wù)器出現(xiàn)問(wèn)題時(shí),Sentinel可以通過(guò)API向管理員或者其他應(yīng)用程序發(fā)送通知。
  • 自動(dòng)故障遷移(Automatic failover): (1)當(dāng)一個(gè)主服務(wù)器不能正常工作時(shí),Sentinel會(huì)開(kāi)始一次自動(dòng)故障遷移操作,他會(huì)將失效主服務(wù)器的其中一個(gè)從服務(wù)器升級(jí)為新的主服務(wù)器,并讓失效主服務(wù)器的其他從服務(wù)器改為復(fù)制新的主服務(wù)器;(2)客戶(hù)端試圖連接失敗的主服務(wù)器時(shí),集群也會(huì)向客服端返回新主服務(wù)器的地址,是的集群可以使用新主服務(wù)器代替失效服務(wù)器。

sentinel的分布式特性

Redis Sentinel 是一個(gè)分布式系統(tǒng), 你可以在一個(gè)架構(gòu)中運(yùn)行多個(gè) Sentinel 進(jìn)程(progress), 這些進(jìn)程使用流言協(xié)議(gossip protocols)來(lái)接收關(guān)于主服務(wù)器是否下線(xiàn)的信息, 并使用投票協(xié)議(agreement protocols)來(lái)決定是否執(zhí)行自動(dòng)故障遷移, 以及選擇哪個(gè)從服務(wù)器作為新的主服務(wù)器。

單個(gè)sentinel進(jìn)程來(lái)監(jiān)控redis集群是不可靠的,當(dāng)sentinel進(jìn)程宕掉后(sentinel本身也有單點(diǎn)問(wèn)題,single-point-of-failure)整個(gè)集群系統(tǒng)將無(wú)法按照預(yù)期的方式運(yùn)行。所以有必要將sentinel集群,這樣有幾個(gè)好處:

  • 有一些sentinel進(jìn)程宕掉了,依然可以進(jìn)行redis集群的主備切換;
  • 如果只有一個(gè)sentinel進(jìn)程,如果這個(gè)進(jìn)程運(yùn)行出錯(cuò),或者是網(wǎng)絡(luò)堵塞,那么將無(wú)法實(shí)現(xiàn)redis集群的主備切換(單點(diǎn)問(wèn)題);
  • 如果有多個(gè)sentinel,redis的客戶(hù)端可以隨意地連接任意一個(gè)sentinel來(lái)獲得關(guān)于redis集群中的信息

一個(gè)健壯的部署至少需要三個(gè)哨兵實(shí)例。

三個(gè)哨兵實(shí)例應(yīng)該放置在客戶(hù)使用獨(dú)立方式確認(rèn)故障的計(jì)算機(jī)或虛擬機(jī)中。例如不同的物理機(jī)或不同可用區(qū)域的虛擬機(jī)?!颈敬沃v解是一個(gè)機(jī)器上進(jìn)行搭建,和多級(jí)是一個(gè)道理

背景

最近項(xiàng)目需求,接觸到了Redis的搭建,簡(jiǎn)單記錄下搭建過(guò)程中遇到的坑

總體配置

192.168.1.100:6379 -> master
192.168.1.101:6379 -> slave
192.168.1.102:6379 -> slave
192.168.1.100:26379 -> sentinel
192.168.1.101:26379 -> sentinel
192.168.1.102:26379 -> sentinel

搭建步驟

1.安裝redis

# 解壓
tar -xvf /usr/local/redis-3.2.11.tar.gz

mkdir -p /usr/local/redis/bin

cp /usr/local/redis/src/{redis-benchmark,redis-check-aof,redis-check-rdb,redis-cli,redis-sentinel,redis-server,redis-trib.rb} /usr/local/redis/bin

mkdir -p /u01/redis/{6379/{log,data,pid,conf},26379/{log,data,pid,conf}

# 添加環(huán)境變量
echo "export PATH=/usr/local/redis/bin:$PATH" >> /etc/profile
source /etc/profile

2.redis-6379配置

redis節(jié)點(diǎn)配置基本如下,把如下配置分別cp到三臺(tái)虛擬機(jī)的/u01/redis/6379/conf/redis_6379.conf

bind 0.0.0.0
protected-mode no
daemonize yes
pidfile "/u01/redis/6379/pid/redis_6379.pid"
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 0
loglevel notice
logfile "/u01/redis/6379/log/redis_6379.log"
databases 16
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename "dump.rdb"
dir "/u01/redis/6379/data"
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
slave-priority 100
min-slaves-to-write 1
min-slaves-max-lag 10
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512

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

# 在三臺(tái)虛擬機(jī)上分別執(zhí)行
redis-server /u01/redis/6379/conf/redis_6379.conf

建立主從關(guān)系

# 在192.168.1.101
redis-cli -p 6379 SLAVEOF 192.168.1.100 6379

# 在192.168.1.102
redis-cli -p 6379 SLAVEOF 192.168.1.100 6379

查看Replication

192.168.1.101:6379> info replication
# Replication
role:master
connected_slaves:2
min_slaves_good_slaves:2
slave0:ip=192.168.1.102,port=6379,state=online,offset=9577826,lag=1
slave1:ip=192.168.1.103,port=6379,state=online,offset=9577965,lag=0
master_repl_offset:9577965
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:8529390
repl_backlog_histlen:1048576

192.168.1.102:6379> info replication
# Replication
role:slave
master_host:192.168.1.101
master_port:6379
master_link_status:up
master_last_io_seconds_ago:0
master_sync_in_progress:0
slave_repl_offset:9600220
slave_priority:100
slave_read_only:1
connected_slaves:0
min_slaves_good_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

192.168.1.103:6379> info replication
# Replication
role:slave
master_host:192.168.1.101
master_port:6379
master_link_status:up
master_last_io_seconds_ago:0
master_sync_in_progress:0
slave_repl_offset:9612675
slave_priority:100
slave_read_only:1
connected_slaves:0
min_slaves_good_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

3.sentinel-6379配置

sentinel節(jié)點(diǎn)配置基本如下,把如下配置分別cp到三臺(tái)虛擬機(jī)的/u01/redis/26379/conf/sentinel_26379.conf

sentinel monitor mymaster 后監(jiān)控的是redis中的master節(jié)點(diǎn),也就是192.168.1.100,所以這個(gè)文件在三臺(tái)機(jī)器上是相同的

port 26379
bind 0.0.0.0
daemonize yes
protected-mode no
dir "/u01/redis/26379/tmp"
logfile "/u01/redis/26379/log/sentinel_26379.log"
sentinel monitor mymaster 192.168.1.100 6379 1

等待啟動(dòng)完畢后觀察/u01/redis/26379/conf/sentinel_26379.conf文件變化

查看sentinel狀態(tài)用info sentinel

redis-cli -h 192.168.1.100 -p 26379 info sentinel

# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=zhuanche01,status=ok,address=192.168.1.100:6379,slaves=2,sentinels=3

總結(jié)

我搭建的時(shí)候遇到了192.168.1.101、192.168.1.102上的sentinel啟動(dòng)后一段時(shí)間出錯(cuò)的問(wèn)題,后來(lái)發(fā)現(xiàn)是沒(méi)有監(jiān)控master
再就是出問(wèn)題了多看log

來(lái)年要多寫(xiě)筆記,年紀(jì)大了,記憶力越來(lái)越差!

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Redis分布式緩存與秒殺

    Redis分布式緩存與秒殺

    這篇文章主要介紹了Redis分布式緩存與秒殺,單點(diǎn)Redis的問(wèn)題,主要有數(shù)據(jù)丟失,并發(fā)能力,故障恢復(fù),存儲(chǔ)能力,想進(jìn)一步了解的同學(xué),可以借鑒本文
    2023-04-04
  • Redis整合Spring結(jié)合使用緩存實(shí)例

    Redis整合Spring結(jié)合使用緩存實(shí)例

    這篇文章主要介紹了Redis整合Spring結(jié)合使用緩存實(shí)例,介紹了如何在Spring中配置redis,并通過(guò)Spring中AOP的思想,將緩存的方法切入到有需要進(jìn)入緩存的類(lèi)或方法前面。需要的朋友可以參考下
    2015-12-12
  • 深入理解Redis內(nèi)存淘汰策略

    深入理解Redis內(nèi)存淘汰策略

    本文主要介紹了深入理解Redis內(nèi)存淘汰策略,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • Java Socket實(shí)現(xiàn)Redis客戶(hù)端的詳細(xì)說(shuō)明

    Java Socket實(shí)現(xiàn)Redis客戶(hù)端的詳細(xì)說(shuō)明

    socket編程是一門(mén)技術(shù),它主要是在網(wǎng)絡(luò)通信中經(jīng)常用到.這篇文章主要介紹了如何用Java Socket實(shí)現(xiàn)一個(gè)簡(jiǎn)單的Redis客戶(hù)端,需要的朋友可以參考下
    2021-05-05
  • redis中redis-cli使用小結(jié)

    redis中redis-cli使用小結(jié)

    redis-cli 是Redis命令行界面,一個(gè)簡(jiǎn)單的程序,允許直接從終端向Redis發(fā)送命令,并讀取服務(wù)器發(fā)送的回復(fù),本文主要介紹了redis中redis-cli使用小結(jié),感興趣的可以了解一下
    2023-10-10
  • Redis高可用梳理詳解

    Redis高可用梳理詳解

    高可用的本質(zhì)是有備份,在出現(xiàn)故障的時(shí)候,有backup可以提供服務(wù),本文詳細(xì)介紹了Redis的高可用,感興趣的同學(xué)可以參考閱讀
    2023-05-05
  • 淺談Redis在分布式系統(tǒng)中的協(xié)調(diào)性運(yùn)用

    淺談Redis在分布式系統(tǒng)中的協(xié)調(diào)性運(yùn)用

    這篇文章主要介紹了Redis在分布式系統(tǒng)中的協(xié)調(diào)性運(yùn)用,講解了Redis在進(jìn)程和線(xiàn)程的調(diào)度上以及消息隊(duì)列中的作用,需要的朋友可以參考下
    2016-03-03
  • 基于Redis實(shí)現(xiàn)分布式單號(hào)及分布式ID(自定義規(guī)則生成)

    基于Redis實(shí)現(xiàn)分布式單號(hào)及分布式ID(自定義規(guī)則生成)

    一些業(yè)務(wù)背景下,業(yè)務(wù)要求單號(hào)需要有區(qū)分不同的前綴,那么在分布式的架構(gòu)下如何自定義單號(hào)而且還能保證唯一呢?本文就來(lái)詳細(xì)的介紹一下
    2021-09-09
  • redis?設(shè)置生存和過(guò)期時(shí)間的原理分析

    redis?設(shè)置生存和過(guò)期時(shí)間的原理分析

    這篇文章主要介紹了redis?設(shè)置生存和過(guò)期時(shí)間的原理,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 利用yum安裝Redis的方法詳解

    利用yum安裝Redis的方法詳解

    Redis是一個(gè)開(kāi)源的使用ANSI C語(yǔ)言編寫(xiě)、支持網(wǎng)絡(luò)、可基于內(nèi)存亦可持久化的日志型、Key-Value數(shù)據(jù)庫(kù),并提供多種語(yǔ)言的API。從2010年3月15日起,Redis的開(kāi)發(fā)工作由VMware主持。這篇文章主要介紹的是利用yum安裝Redis的方法,有需要的朋友們可以參考借鑒,下面來(lái)一起看看吧
    2016-11-11

最新評(píng)論