Redisのセンチネル・メカニズム[]

I.概要

メカニズムSentinelは何ですか

  • Redisの歩哨(センチネル)複数のサーバを管理するためのRedisのシステムは、システムは、次の3つのタスクを実行します。
    • モニタリング(監視):センチネル(見張り)は、あなたのマスターとスレーブが正常に機能しているかどうかをチェックしていきます。
    • (通知)を思い出させる:Redisの問題を監視する場合、センチネル(見張り)は、APIを介して、管理者や他のアプリケーションに通知を送信することができます。
    • 自動フェイルオーバー(自動フェイルオーバー):マスターが動作しない、センチネル(見張り)は、それが新しいマスターにアップグレードスレーブマスターの障害の一つとなり、自動フェイルオーバー操作を開始し、他のスレーブマスターの障害をできるようになります新しいマスターにコピーし、クライアントがマスターの失敗を接続しようとすると、クラスタがマスターマスターの失敗の代わりに使用することができるように、クラスタの新しいマスターのクライアント端末のアドレスに戻ります。
  • センチネル(見張り)分散型システムであり、あなたはこれらのプロセスは、組立ラインオフマスターかどうかについての情報を受け取り、投票契約を使用するように噂プロトコル(gossipprotocols)を使用し、プロセスアーキテクチャでは、複数の歩哨(センチネル)を実行することができます(協定プロトコル)自動フェイルオーバーを実行するかどうかを決定するだけでなく、新たに選択したスレーブマスターします。
  • 時間は、他の側がリンクされていることを各センチネル指定した時刻に他の歩哨(センチネル)メッセージお互いに反応しないことが判明した場合、他の「生きている」かどうかを確認する(設定)への送信(センチネル)意志、マスター、スレーブのタイミングを、さ(「主観ダウン」主観ダウン、いわゆるSDOWNを呼びます)。
  • ほとんどのセンチネルで「センチネル基」、マスターが応答しなかったと報告した場合、システムは「完全に死んだ」のマスターと考えられていた(すなわち:客観的、客観下にダウン実機、odown呼ばれる)、特定のアルゴリズムの投票を通じて、スレーブノードの残りの部分から、マスタにリフトから選択され、自動的に設定を変更します。
  • センチネル(見張り)与えられた--sentinelオプション単一の実行可能ファイルのRedis-センチネルでリリースしたが、それは実際に運転の特別なモードでだけRedisのサーバーですが、一般的なRedisのサーバーを起動することができますセンチネル(センチネル)を起動します。
  • デザインのアイデアのいくつかのセンチネル(見張り)と非常に類似している飼育係

15560916690088
155609

第二に、環境設定

2.1仮想マシン

  • アクションのセンチネルメカニズム:管理クラスタのRedis、選挙監視戦略、ハートビート、(スタンドアロンアプリケーション)
  • 三つの異なるサーバはRedisのクラスター(クローン)を達成することを保証するために環境を設定します
  • 直接、すべての背後にある二つのクローンをインストールします。
192.168.212.145 主redis服务器
192.168.212.147 从redis
192.168.212.148 从redis

2.2インストールのRedis


#下载Redis安装包
wget http://download.redis.io/releases/redis-3.2.9.tar.gz
#解压Redis安装包
tar -zxvf redis-3.2.9.tar.gz
#安装
cd redis-3.2.9
make
cd src
make install PREFIX=/usr/local/redis
#移动配置文件到安装目录下
cd ../
mkdir /usr/local/redis/etc
mv redis.conf /usr/local/redis/etc

#配置redis为后台启动修改密码
vi /usr/local/redis/etc/redis.conf
# 将daemonize no 改成daemonize yes
# requirepass 123

#开启redis
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf 

#连接Redis客户端
./redis-cli -h 127.0.0.1 -p 6379 -a "123456" 
PING #结果表示成功

#关闭防火墙

#临时关闭
systemctl stop firewalld
#禁止开机启动防火墙
systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.


#停止Redis服务
./redis-cli -h 127.0.0.1 -p 6379 -a "123456"  shutdown

#修改redis.conf
#开启外网访问 ,注释掉下面的
#bind 127.0.0.1 

#注意事项:
#1.修改redis为后台启动进程
# 将daemonize no 改成daemonize yes
#2.允许IP地址访问
#注释掉#bind 127.0.0.1
#3.修改redis启动密码
# requirepass 12356

2.3からのマスターコピーを設定

マスタースレーブのレプリケーションを設定し slaveofサーバからプライマリサーバに、アクセスパスワードを設定します。

現在の情報のRedisを表示するには、infoコマンドを入力することができ、クライアントを接続した後、1はサーバを145ベースのことを示し、サーバーから148サーバー:

  • クラスタ内の最も重要なステップ:すべてのファイアウォールを閉じます

  • 前に、クラスタ内の時間、場合メインのRedisのパスワード同期を指示する必要があります。すべてのサーバークラスタはオープンパスワードでなければなりません

2.4の設定センチネル

私たちは、サーバー上で見張りを設定しました。

#实现步骤:
#1.将redis根目录下的sentinel.conf 拷贝到etc目录
cp sentinel.conf  /usr/local/redis/etc
#2.修改sentinel.conf配置文件
sentinel monitor mymaster  192.168.110.133 6379 1  #主节点 名称 IP 端口号 选举次数
sentinel auth-pass mymaster 123456  
#3. 修改心跳检测 30毫秒
sentinel down-after-milliseconds mymaster 30
#4.
sentinel parallel-syncs mymaster 2 # 做多少合格节点

2.5試験

  1. スタートセンチネル
  2. 、Redisのを起動のRedisから開始した後、メインのRedisを開始する(またはそうでなければ、メイン歩哨のRedisのがハングアップすることを意味します)
#1. 进入到bin目录中,启动哨兵模式
./redis-server /usr/local/redis/etc/sentinel.conf --sentinel &
  • プライマリサーバは、サーバからなる前にいる場合、プライマリサーバ145とハングアップが、それはサーバからマスタサーバに転送されます場合は、この時間は、3つのRedisのサーバーを開始しました。(クラスタ内の場合は、前のときメインRedisのパスワードを同期開いパスワードにする必要があり、クラスタ内のすべてのサーバーを指している必要があります)

(解決すべき)2.6疑い

  今私は、ときセンチネルは容易に、あるサーバ上で設定、またはサーバー上で構成されている設定を知らないとサーバー構成の歩哨がハングアップしている場合は、その後、何それから起こるのだろうか?

おすすめ

転載: www.cnblogs.com/haoworld/p/redis-shao-bing-ji-zhi.html